[2/4] libctf: fix use-after-free in function dumping

Message ID 20190604152352.149585-3-nick.alcock@oracle.com
State New
Headers show
Series
  • More portability fixes
Related show

Commit Message

Nick Alcock June 4, 2019, 3:23 p.m.
This is actually a free-before-initializing (i.e. a free of garbage).

libctf/
	* ctf-dump.c (ctf_dump_funcs): Free in the right place.
---
 libctf/ChangeLog  | 4 ++++
 libctf/ctf-dump.c | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

-- 
2.21.0.237.gd0cfaa883d

Patch

diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index d059d58d19..01b8d8da24 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,3 +1,7 @@ 
+2019-06-03  Nick Alcock  <nick.alcock@oracle.com>
+
+	* ctf-dump.c (ctf_dump_funcs): Free in the right place.
+
 2019-05-29  Nick Alcock  <nick.alcock@oracle.com>
 
 	* Makefile.am (ZLIB): New.
diff --git a/libctf/ctf-dump.c b/libctf/ctf-dump.c
index c2ed791eea..82f63c29d0 100644
--- a/libctf/ctf-dump.c
+++ b/libctf/ctf-dump.c
@@ -273,7 +273,6 @@  ctf_dump_funcs (ctf_file_t *fp, ctf_dump_state_t *state)
 	goto err;
 
       str = ctf_str_append (str, " ");
-      free (bit);
 
       /* Function name.  */
 
@@ -290,6 +289,7 @@  ctf_dump_funcs (ctf_file_t *fp, ctf_dump_state_t *state)
 	}
       str = ctf_str_append (str, bit);
       str = ctf_str_append (str, " (");
+      free (bit);
 
       /* Function arguments.  */