From da9e3958d633dbfae39eb0e65afab4eec5197ca9 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Fri, 17 Feb 2017 10:26:48 -0800 Subject: [PATCH] Add crasher check for passing a bad pthread_t to pthread_join. Bug: http://b/35455349 Test: manual Change-Id: If09454c7104a1e6de7c0edb50ee52118b7ca5eaa --- debuggerd/crasher/crasher.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/debuggerd/crasher/crasher.cpp b/debuggerd/crasher/crasher.cpp index cd45bbbbf..1c01e3ef5 100644 --- a/debuggerd/crasher/crasher.cpp +++ b/debuggerd/crasher/crasher.cpp @@ -189,6 +189,7 @@ static int usage() { fprintf(stderr, " fprintf-NULL pass a null pointer to fprintf\n"); fprintf(stderr, " readdir-NULL pass a null pointer to readdir\n"); fprintf(stderr, " strlen-NULL pass a null pointer to strlen\n"); + fprintf(stderr, " pthread_join-NULL pass a null pointer to pthread_join\n"); fprintf(stderr, "\n"); fprintf(stderr, " no_new_privs set PR_SET_NO_NEW_PRIVS and then abort\n"); fprintf(stderr, "\n"); @@ -258,6 +259,8 @@ noinline int do_action(const char* arg) { readdir_null(); } else if (!strcasecmp(arg, "strlen-NULL")) { return strlen_null(); + } else if (!strcasecmp(arg, "pthread_join-NULL")) { + return pthread_join(0, nullptr); } else if (!strcasecmp(arg, "heap-usage")) { abuse_heap(); } else if (!strcasecmp(arg, "SIGSEGV-unmapped")) {