From e48460762273586744a79d146c2916bcfca7e9e4 Mon Sep 17 00:00:00 2001 From: Christopher Ferris Date: Fri, 23 May 2014 14:46:36 -0700 Subject: Only copy mcontext data from sigcontext. The ucontext_t data structure could be bigger than the kernel data structure. Since the unwinder only cares about the mcontext data, only copy that out of the structure. The mcontext data is the same size in the kernel and in the ucontext_t structure. Bug: 15189014 Change-Id: I5978169c4425b8212e11db85a57eb319cd0e264b --- libbacktrace/BacktraceThread.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'libbacktrace/BacktraceThread.h') diff --git a/libbacktrace/BacktraceThread.h b/libbacktrace/BacktraceThread.h index a75a807..ff3e9f3 100644 --- a/libbacktrace/BacktraceThread.h +++ b/libbacktrace/BacktraceThread.h @@ -40,14 +40,12 @@ public: static void Remove(ThreadEntry* entry); - inline void CopyUcontext(ucontext_t* ucontext) { - memcpy(&ucontext_, ucontext, sizeof(ucontext_)); - } - void Wake(); void Wait(int); + void CopyUcontextFromSigcontext(void*); + inline void Lock() { pthread_mutex_lock(&mutex_); // Reset the futex value in case of multiple unwinds of the same thread. -- cgit v1.1