[binutils-gdb/binutils-2_43-branch] libctf: dump: fix small leak

Nick Alcock nix@sourceware.org
Thu Aug 1 14:43:11 GMT 2024


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=51dac5ecd76f72a6f1ccbe598edbed4e1f94fbb7

commit 51dac5ecd76f72a6f1ccbe598edbed4e1f94fbb7
Author: Nick Alcock <nick.alcock@oracle.com>
Date:   Mon Jul 29 18:02:03 2024 +0100

    libctf: dump: fix small leak
    
    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.

Diff:
---
 libctf/ctf-dump.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libctf/ctf-dump.c b/libctf/ctf-dump.c
index cd41996084d..a37d4b75d45 100644
--- a/libctf/ctf-dump.c
+++ b/libctf/ctf-dump.c
@@ -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;
 	}
     }


More information about the Binutils-cvs mailing list