libctf: dump: fix small leak
authorNick Alcock <nick.alcock@oracle.com>
Mon, 29 Jul 2024 17:02:03 +0000 (18:02 +0100)
committerNick Alcock <nick.alcock@oracle.com>
Thu, 1 Aug 2024 13:30:21 +0000 (14:30 +0100)
If you asprintf something and then use it only as input to another asprintf,
it helps to free it afterwards.

libctf/
* ctf-dump.c (ctf_dump_header): Free the flagstr after use.
(ctf_dump): Make a NULL return slightly clearer.

libctf/ctf-dump.c

index cd41996..a37d4b7 100644 (file)
@@ -349,6 +349,7 @@ ctf_dump_header (ctf_dict_t *fp, ctf_dump_state_t *state)
 
       if (asprintf (&str, "Flags: 0x%x (%s)", fp->ctf_openflags, flagstr) < 0)
        goto err;
+      free (flagstr);
       ctf_dump_append (state, str);
     }
 
@@ -814,7 +815,7 @@ ctf_dump (ctf_dict_t *fp, ctf_dump_state_t **statep, ctf_sect_names_t sect,
       if (!str)
        {
          ctf_set_errno (fp, ENOMEM);
-         return str;
+         return NULL;
        }
     }