File ltrace.trunk-r65.patch of Package ltrace

------------------------------------------------------------------------
r65 | ianw-guest | 2006-08-14 03:42:30 +0000 (Mon, 14 Aug 2006) | 2 lines
Changed paths:
   M /ltrace/trunk/ChangeLog
   M /ltrace/trunk/demangle.c

remove an un-needed dictionary free

------------------------------------------------------------------------
---
 ChangeLog  |    6 ++++++
 demangle.c |   10 +---------
 2 files changed, 7 insertions(+), 9 deletions(-)

Index: ChangeLog
===================================================================
--- ChangeLog.orig
+++ ChangeLog
@@ -1,3 +1,9 @@
+2006-08-14  Steve Fink <sphink@gmail.com>
+
+	* demangle.c: remove my_demagle_dict_clear(), remove atexit() call
+	for same.  Avoid potential segfault as demangling uses the
+	dictionary.
+
 2006-08-07  Steve Fink <sphink@gmail.com>
 
 	* display_args.c, etc/ltrace.conf, ltrace.h, read_config_file.c,
Index: demangle.c
===================================================================
--- demangle.c.orig
+++ demangle.c
@@ -18,12 +18,6 @@
 
 static struct dict *d = NULL;
 
-static void my_demangle_dict_clear(void)
-{
-	/* FIXME TODO XXX: I should also free all (key,value) pairs */
-	dict_clear(d);
-}
-
 const char *my_demangle(const char *function_name)
 {
 	const char *tmp, *fn_copy;
@@ -32,10 +26,8 @@ const char *my_demangle(const char *func
 	int status = 0;
 #endif
 
-	if (!d) {
+	if (!d)
 		d = dict_init(dict_key2hash_string, dict_key_cmp_string);
-		atexit(my_demangle_dict_clear);
-	}
 
 	tmp = dict_find_entry(d, (void *)function_name);
 	if (!tmp) {
openSUSE Build Service is sponsored by