diff --git a/ChangeLog b/ChangeLog index 8a10ccd0..eab45c45 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Sat Oct 29 14:43:00 2005 Søren Sandmann + + Fix crash pointed reported by Rudi Chiarito. + + * stackstash.c (stack_stash_add_trace): Just return if + n_addrs is 0. + + * sysprof.c (on_read): Only trace if n_addresses != 0. + Sat Oct 29 14:29:55 2005 Søren Sandmann * README, TODO: updates diff --git a/stackstash.c b/stackstash.c index c7ecb1d5..9f66f158 100644 --- a/stackstash.c +++ b/stackstash.c @@ -139,6 +139,9 @@ stack_stash_add_trace (StackStash *stash, StackNode *leaf; int i; + if (!n_addrs) + return; + trace = NULL; for (i = 0; i < n_addrs; ++i) trace = g_list_prepend (trace, GINT_TO_POINTER (addrs[i])); diff --git a/sysprof.c b/sysprof.c index 680c9a8c..67507e7d 100644 --- a/sysprof.c +++ b/sysprof.c @@ -300,7 +300,7 @@ on_read (gpointer data) g_print ("-=-\n"); #endif - if (rd > 0 && !app->generating_profile) + if (rd > 0 && !app->generating_profile && trace.n_addresses) { Process *process = process_get_from_pid (trace.pid); int i; @@ -308,7 +308,7 @@ on_read (gpointer data) /* if (*trace.filename) */ /* filename = trace.filename; */ - + for (i = 0; i < trace.n_addresses; ++i) { process_ensure_map (process, trace.pid,