aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Alcock <nick.alcock@oracle.com>2019-08-08 16:53:48 +0100
committerNick Alcock <nick.alcock@oracle.com>2019-10-03 17:04:56 +0100
commit1a6ab13e712348c59c2757457b9f913a333f3c92 (patch)
tree268bd56d93768d66835b60932e85a8cbb33fa606
parent99dc3ebdfff927b30db58117d7bd80586e273669 (diff)
downloadgdb-1a6ab13e712348c59c2757457b9f913a333f3c92.zip
gdb-1a6ab13e712348c59c2757457b9f913a333f3c92.tar.gz
gdb-1a6ab13e712348c59c2757457b9f913a333f3c92.tar.bz2
libctf: allow ctf_type_lname of a null pointer.
The code was meant to handle this, but accidentally dereferenced the null pointer before checking it for nullity. v5: fix tabdamage. libctf/ * ctf-types.c (ctf_type_name): Don't strlen a potentially- null pointer.
-rw-r--r--libctf/ChangeLog5
-rw-r--r--libctf/ctf-types.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index 1069553..8f41ece 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-08 Nick Alcock <nick.alcock@oracle.com>
+
+ * ctf-types.c (ctf_type_name): Don't strlen a potentially-
+ null pointer.
+
2019-08-07 Nick Alcock <nick.alcock@oracle.com>
* ctf-impl.h (ctf_file_t) <ctf_add_processing>: New.
diff --git a/libctf/ctf-types.c b/libctf/ctf-types.c
index 6e67762..ec221d7 100644
--- a/libctf/ctf-types.c
+++ b/libctf/ctf-types.c
@@ -438,11 +438,12 @@ ssize_t
ctf_type_lname (ctf_file_t *fp, ctf_id_t type, char *buf, size_t len)
{
char *str = ctf_type_aname (fp, type);
- size_t slen = strlen (str);
+ size_t slen;
if (str == NULL)
return CTF_ERR; /* errno is set for us */
+ slen = strlen (str);
snprintf (buf, len, "%s", str);
free (str);