diff options
Diffstat (limited to 'debuggerd/backtrace.c')
-rw-r--r-- | debuggerd/backtrace.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/debuggerd/backtrace.c b/debuggerd/backtrace.c index ba76e7d..62f7f32 100644 --- a/debuggerd/backtrace.c +++ b/debuggerd/backtrace.c @@ -125,9 +125,10 @@ void dump_backtrace(int fd, pid_t pid, pid_t tid, bool* detach_failed, char task_path[64]; snprintf(task_path, sizeof(task_path), "/proc/%d/task", pid); DIR* d = opendir(task_path); - if (d != NULL) { - struct dirent* de = NULL; - while ((de = readdir(d)) != NULL) { + if (d) { + struct dirent debuf; + struct dirent *de; + while (!readdir_r(d, &debuf, &de) && de) { if (!strcmp(de->d_name, ".") || !strcmp(de->d_name, "..")) { continue; } |