Validation for pointer returned by backtrace_symbols () added.
Type of variables size and i is changed from size_t to int.
Variable size is used to collect the result from backtrace ()
that is an int. i is the loop counter variable so it can be an int.
Since, size_t size is changed to int size, in printf %zd is changed to %d.
Reviewed-by: DJ Delorie <dj@redhat.com>
print_trace (void)
{
void *array[10];
- size_t size;
char **strings;
- size_t i;
+ int size, i;
size = backtrace (array, 10);
strings = backtrace_symbols (array, size);
+ if (strings != NULL)
+ {
- printf ("Obtained %zd stack frames.\n", size);
-
- for (i = 0; i < size; i++)
- printf ("%s\n", strings[i]);
+ printf ("Obtained %d stack frames.\n", size);
+ for (i = 0; i < size; i++)
+ printf ("%s\n", strings[i]);
+ }
free (strings);
}