summaryrefslogtreecommitdiff
path: root/libctf
diff options
context:
space:
mode:
authorNick Alcock <nick.alcock@oracle.com>2019-06-06 14:10:08 +0100
committerNick Alcock <nick.alcock@oracle.com>2019-06-07 13:46:39 +0100
commit942d35f72bea5a0d19a5d0e0a5ca533e37a88b2c (patch)
tree816501c6463655665d89a4263e9241d0f4578af4 /libctf
parent595a4d439bc5976d5bdf61da6d44337b3995d967 (diff)
downloadbinutils-gdb-942d35f72bea5a0d19a5d0e0a5ca533e37a88b2c.tar.gz
libctf: avoid strndup
Not all platforms have it. Use libiberty xstrndup() instead. (The include of libiberty.h happens in an unusual place due to the requirements of synchronization of most source files between this project and another that does not use libiberty. It serves to pull libiberty.h in for all source files in libctf/, which does the trick.) Tested on x86_64-pc-linux-gnu, x86_64-unknown-freebsd12.0, sparc-sun-solaris2.11, i686-pc-cygwin, i686-w64-mingw32. libctf/ * ctf-decls.h: Include <libiberty.h>. * ctf-lookup.c (ctf_lookup_by_name): Call xstrndup(), not strndup().
Diffstat (limited to 'libctf')
-rw-r--r--libctf/ChangeLog5
-rw-r--r--libctf/ctf-decls.h1
-rw-r--r--libctf/ctf-lookup.c2
3 files changed, 7 insertions, 1 deletions
diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index 20f9816efd4..f48ad5b213d 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,5 +1,10 @@
2019-06-06 Nick Alcock <nick.alcock@oracle.com>
+ * ctf-decls.h: Include <libiberty.h>.
+ * ctf-lookup.c (ctf_lookup_by_name): Call xstrndup(), not strndup().
+
+2019-06-06 Nick Alcock <nick.alcock@oracle.com>
+
* ctf-dump.c (ctf_dump_format_type): Cast size_t's used in printf()s.
(ctf_dump_objts): Likewise.
(ctf_dump_funcs): Likewise.
diff --git a/libctf/ctf-decls.h b/libctf/ctf-decls.h
index c840b793c9b..b60a48f987a 100644
--- a/libctf/ctf-decls.h
+++ b/libctf/ctf-decls.h
@@ -24,6 +24,7 @@
#include <stddef.h>
#include <stdlib.h>
+#include "libiberty.h"
#if HAVE_QSORT_R_ARG_LAST
static inline void
diff --git a/libctf/ctf-lookup.c b/libctf/ctf-lookup.c
index ab12715f4b1..4089ad9ffa4 100644
--- a/libctf/ctf-lookup.c
+++ b/libctf/ctf-lookup.c
@@ -153,7 +153,7 @@ ctf_lookup_by_name (ctf_file_t *fp, const char *name)
else
{
free (fp->ctf_tmp_typeslice);
- fp->ctf_tmp_typeslice = strndup (p, (size_t) (q - p));
+ fp->ctf_tmp_typeslice = xstrndup (p, (size_t) (q - p));
if (fp->ctf_tmp_typeslice == NULL)
{
(void) ctf_set_errno (fp, ENOMEM);