From 970b34291e85c47a11a0bfe107125f32ef2f75d1 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 1 Jun 2007 11:16:09 +0200 Subject: [PATCH] ntdll: Preserve errno across system calls done in the suspend handler. --- dlls/ntdll/exception.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c index 8974cedce95..c039dd4fe53 100644 --- a/dlls/ntdll/exception.c +++ b/dlls/ntdll/exception.c @@ -23,6 +23,7 @@ #include "wine/port.h" #include +#include #include #include @@ -147,6 +148,7 @@ extern DWORD EXC_CallHandler( EXCEPTION_RECORD *record, EXCEPTION_REGISTRATION_R void wait_suspend( CONTEXT *context ) { LARGE_INTEGER timeout; + int saved_errno = errno; /* store the context we got at suspend time */ SERVER_START_REQ( set_thread_context ) @@ -173,6 +175,8 @@ void wait_suspend( CONTEXT *context ) wine_server_call( req ); } SERVER_END_REQ; + + errno = saved_errno; }