From 51cb07b0f4e55aa83d77e17630807b94efa43a13 Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Sun, 16 Nov 2014 15:21:13 +0100 Subject: [PATCH] Fixed use after free. --- winpr/libwinpr/thread/thread.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/winpr/libwinpr/thread/thread.c b/winpr/libwinpr/thread/thread.c index da9d86b..8916f22 100644 --- a/winpr/libwinpr/thread/thread.c +++ b/winpr/libwinpr/thread/thread.c @@ -426,6 +426,7 @@ HANDLE CreateRemoteThread(HANDLE hProcess, LPSECURITY_ATTRIBUTES lpThreadAttribu VOID ExitThread(DWORD dwExitCode) { + DWORD rc; pthread_t tid = pthread_self(); if (!thread_list) @@ -460,10 +461,11 @@ VOID ExitThread(DWORD dwExitCode) ListDictionary_Unlock(thread_list); set_event(thread); + rc = thread->dwExitCode; if (thread->detached || !thread->started) cleanup_handle(thread); - pthread_exit((void*) (size_t) thread->dwExitCode); + pthread_exit((void*) (size_t) rc); } } -- 2.7.4