summaryrefslogtreecommitdiff
path: root/manual/examples
diff options
context:
space:
mode:
authorGirish Joshi <girish946@gmail.com>2020-05-29 10:06:53 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2020-05-29 10:08:08 -0300
commit5d5b3bd94ceebe13d54a6e0cc9e2a899adbbc56f (patch)
tree0022c469cd964cfd3a43a6fb437271d3a9025c4f /manual/examples
parent6544999083437dabdadcec18185a1b2169b9637a (diff)
downloadglibc-5d5b3bd94ceebe13d54a6e0cc9e2a899adbbc56f.tar.gz
manual: Fix backtraces code example [BZ #10441]
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>
Diffstat (limited to 'manual/examples')
-rw-r--r--manual/examples/execinfo.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/manual/examples/execinfo.c b/manual/examples/execinfo.c
index a789b6b5a7..3cedf7f35f 100644
--- a/manual/examples/execinfo.c
+++ b/manual/examples/execinfo.c
@@ -24,17 +24,18 @@ void
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);
}