[PATCH 18/19] libctf: dump: fix small leak

Nick Alcock nick.alcock@oracle.com
Tue Jul 30 15:37:06 GMT 2024


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 | 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;
 	}
     }
 
-- 
2.45.2.276.g4ac82df17e



More information about the Binutils mailing list