Module: wine Branch: master Commit: 970b34291e85c47a11a0bfe107125f32ef2f75d1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=970b34291e85c47a11a0bfe107...
Author: Alexandre Julliard julliard@winehq.org Date: Fri Jun 1 11:16:09 2007 +0200
ntdll: Preserve errno across system calls done in the suspend handler.
---
dlls/ntdll/exception.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c index 8974ced..c039dd4 100644 --- a/dlls/ntdll/exception.c +++ b/dlls/ntdll/exception.c @@ -23,6 +23,7 @@ #include "wine/port.h"
#include <assert.h> +#include <errno.h> #include <signal.h> #include <stdarg.h>
@@ -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; }