From c463d2cf9c5717dcd37589deb01615b984266c8c Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Fri, 26 Oct 2012 16:47:09 -0700 Subject: [PATCH] Fix debuggerd's use of readdir_r(3). Change-Id: I1b178af054cefebfb774320e4b4699d6dc8bbb01 --- debuggerd/backtrace.c | 7 +++---- debuggerd/tombstone.c | 5 ++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/debuggerd/backtrace.c b/debuggerd/backtrace.c index 62f7f325c..ba76e7dc3 100644 --- a/debuggerd/backtrace.c +++ b/debuggerd/backtrace.c @@ -125,10 +125,9 @@ 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) { - struct dirent debuf; - struct dirent *de; - while (!readdir_r(d, &debuf, &de) && de) { + if (d != NULL) { + struct dirent* de = NULL; + while ((de = readdir(d)) != NULL) { if (!strcmp(de->d_name, ".") || !strcmp(de->d_name, "..")) { continue; } diff --git a/debuggerd/tombstone.c b/debuggerd/tombstone.c index 52223da73..47a1bf5f5 100644 --- a/debuggerd/tombstone.c +++ b/debuggerd/tombstone.c @@ -405,9 +405,8 @@ static bool dump_sibling_thread_report(const ptrace_context_t* context, } bool detach_failed = false; - struct dirent debuf; - struct dirent *de; - while (!readdir_r(d, &debuf, &de) && de) { + struct dirent* de; + while ((de = readdir(d)) != NULL) { /* Ignore "." and ".." */ if (!strcmp(de->d_name, ".") || !strcmp(de->d_name, "..")) { continue;