summaryrefslogtreecommitdiffstats
path: root/debuggerd/backtrace.c
diff options
context:
space:
mode:
Diffstat (limited to 'debuggerd/backtrace.c')
-rw-r--r--debuggerd/backtrace.c7
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;
}