Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH] Delete temporary string within demangler even in failure cases.
@ 2014-05-27 10:57 Andrew Burgess
  2014-05-27 13:47 ` Ian Lance Taylor
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Burgess @ 2014-05-27 10:57 UTC (permalink / raw)
  To: gcc-patches; +Cc: gdb-patches, Andrew Burgess

Spotted that a call to demangle_template might allocate storage within a
temporary string even if the call to demangle_template eventually returns
failure.
This will never cause the demangler to crash, but does leak memory, as a
result I've not added any tests for this.

Calling string_delete is safe, even if nothing is allocated into the
string, the string is initialised with string_init, so we know the internal
pointers are NULL.

I don't have gcc write privilages, so if this is approved could someone
please commit for me.

Thanks,
Andrew



libiberty/ChangeLog

	* cplus-dem.c (do_type): Call string_delete even if the call to
	demangle_template fails.
---
 libiberty/cplus-dem.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libiberty/cplus-dem.c b/libiberty/cplus-dem.c
index e948487..1c713aa 100644
--- a/libiberty/cplus-dem.c
+++ b/libiberty/cplus-dem.c
@@ -3656,7 +3656,10 @@ do_type (struct work_stuff *work, const char **mangled, string *result)
 		    string_delete (&temp);
 		  }
 		else
-		  break;
+		  {
+		    string_delete (&temp);
+		    break;
+		  }
 	      }
 	    else if (**mangled == 'Q')
 	      {
-- 
1.8.1.3


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-06-11 11:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-27 10:57 [PATCH] Delete temporary string within demangler even in failure cases Andrew Burgess
2014-05-27 13:47 ` Ian Lance Taylor
2014-06-10 18:08   ` Andrew Burgess
2014-06-11 11:02     ` Pedro Alves

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox