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) {