manual: Fix backtraces code example [BZ #10441]
authorGirish Joshi <girish946@gmail.com>
Fri, 29 May 2020 13:06:53 +0000 (10:06 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 29 May 2020 13:08:08 +0000 (10:08 -0300)
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>
manual/examples/execinfo.c

index a789b6b..3cedf7f 100644 (file)
@@ -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);
 }