diff options
author | Girish Joshi <girish946@gmail.com> | 2020-05-29 10:06:53 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2020-05-29 10:08:08 -0300 |
commit | 5d5b3bd94ceebe13d54a6e0cc9e2a899adbbc56f (patch) | |
tree | 0022c469cd964cfd3a43a6fb437271d3a9025c4f | |
parent | 6544999083437dabdadcec18185a1b2169b9637a (diff) | |
download | glibc-5d5b3bd94ceebe13d54a6e0cc9e2a899adbbc56f.tar.gz glibc-5d5b3bd94ceebe13d54a6e0cc9e2a899adbbc56f.tar.xz glibc-5d5b3bd94ceebe13d54a6e0cc9e2a899adbbc56f.zip |
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>
-rw-r--r-- | manual/examples/execinfo.c | 13 |
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); } |