Skip to content
This repository has been archived by the owner on Nov 8, 2023. It is now read-only.

Commit

Permalink
Fix null pointer dereference.
Browse files Browse the repository at this point in the history
In the function dump_thread_info, if /proc/<PID>/comm is unreadable, then
threadname will be used in a strncmp causing a crash. The fix is to
avoid the check if threadname is null.

Bug: 28615417
(cherry picked from commit 039976e)

Change-Id: I1e61431b1549ecfdc49a72cbf193a364069cda79
  • Loading branch information
cferris1000 committed May 5, 2016
1 parent d494665 commit 157f272
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions debuggerd/tombstone.cpp
Expand Up @@ -201,7 +201,7 @@ static void dump_signal_info(log_t* log, pid_t tid, int signal, int si_code) {
static void dump_thread_info(log_t* log, pid_t pid, pid_t tid) {
char path[64];
char threadnamebuf[1024];
char* threadname = NULL;
char* threadname = nullptr;
FILE *fp;

snprintf(path, sizeof(path), "/proc/%d/comm", tid);
Expand All @@ -217,13 +217,13 @@ static void dump_thread_info(log_t* log, pid_t pid, pid_t tid) {
}
// Blacklist logd, logd.reader, logd.writer, logd.auditd, logd.control ...
static const char logd[] = "logd";
if (!strncmp(threadname, logd, sizeof(logd) - 1)
if (threadname != nullptr && !strncmp(threadname, logd, sizeof(logd) - 1)
&& (!threadname[sizeof(logd) - 1] || (threadname[sizeof(logd) - 1] == '.'))) {
log->should_retrieve_logcat = false;
}

char procnamebuf[1024];
char* procname = NULL;
char* procname = nullptr;

snprintf(path, sizeof(path), "/proc/%d/cmdline", pid);
if ((fp = fopen(path, "r"))) {
Expand Down

0 comments on commit 157f272

Please sign in to comment.