about summary refs log tree commit diff
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
parent6544999083437dabdadcec18185a1b2169b9637a (diff)
downloadglibc-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.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);
 }