diff --git a/src/backtrace.c b/src/backtrace.c index 58e1fb2..69885b5 100644 --- a/src/backtrace.c +++ b/src/backtrace.c @@ -35,16 +35,18 @@ void uc_backtrace_buf(char *buf, size_t len) buf[0] = 0; lines = backtrace_symbols(buffer, ptrs); - for (i = 1; i < ptrs; i++) { + if (lines != NULL) { + for (i = 1; i < ptrs; i++) { - int rc = snprintf(buf, remaining, "%s\n", lines[i]); - - if (rc <= 0 || (size_t)rc >= remaining) { - break; + int rc = snprintf(buf, remaining, "%s\n", lines[i]); + + if (rc <= 0 || (size_t)rc >= remaining) { + break; + } + + remaining -= rc; + buf += rc; } - - remaining -= rc; - buf += rc; } free(lines);