Subject: PR29262, memory leak in pr_function_type
From: Alan Modra <[email-masked]>
Date: Mon, 20 Jun 2022 01:09:31 +0000 (+0930)

PR29262, memory leak in pr_function_type

	PR 29262
	* prdbg.c (pr_function_type): Free "s" on failure path.

Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=0d02e70b197c786f26175b9a73f94e01d14abdab]

CVE: CVE-2022-47010   

Signed-off-by: Sanjana Venkatesh <[email-masked]>

---

diff --git a/binutils/prdbg.c b/binutils/prdbg.c
index c1e41628d26..bb42a5b6c2d 100644
--- a/binutils/prdbg.c
+++ b/binutils/prdbg.c
@@ -742,12 +742,9 @@ pr_function_type (void *p, int argcount, bool varargs)
 
   strcat (s, ")");
 
-  if (! substitute_type (info, s))
-    return false;
-
+  bool ret = substitute_type (info, s);
   free (s);
-
-  return true;
+  return ret;
 }
 
 /* Turn the top type on the stack into a reference to that type.  */