Changeset 5870

Show
Ignore:
Timestamp:
11/25/07 18:33:24 (12 months ago)
Author:
erijo
Message:

Check return value from backtrace_symbols before using it (#1516).

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/licq/src/sighandler.c

    r5631 r5870  
    161161    int n = backtrace(array, size); 
    162162    char **res = backtrace_symbols(array, n); 
    163     for (i = 0; i < n; i++) 
     163    if (res == NULL) 
     164      fprintf(stderr, tr("Failed to retrive backtrace symbols")); 
     165    else 
    164166    { 
    165       fprintf(stderr, "%s\n", res[i]); 
    166       if (file != NULL) 
    167         fprintf(file, "%s\n", res[i]); 
     167      for (i = 0; i < n; i++) 
     168      { 
     169        fprintf(stderr, "%s\n", res[i]); 
     170        if (file != NULL) 
     171          fprintf(file, "%s\n", res[i]); 
     172      } 
     173 
     174      free(res); 
    168175    } 
    169  
    170     free(res); 
    171     /*array[0] = si->si_addr; 
    172     res = backtrace_symbols(array, 1); 
    173     fprintf(stderr, "%s\n", res[0]);*/ 
    174176  } 
    175177  fprintf(stderr, tr("Attempting to generate core file.\n"));