From c0fca0a186acc004afcdad74e9c7b3e453a0140a Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 23 Mar 2007 14:02:13 +0100 Subject: [PATCH] ntdll: Avoid overwriting the result of the async I/O callback in NtFsControlFile. --- dlls/ntdll/file.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c index dafe7aa60b2..45786b02d16 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c @@ -941,9 +941,7 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc if (!event && io->u.Status == STATUS_PENDING) { - do - io->u.Status = NtWaitForSingleObject(internal_event, TRUE, NULL); - while(io->u.Status == STATUS_USER_APC); + while (NtWaitForSingleObject(internal_event, TRUE, NULL) == STATUS_USER_APC) /*nothing*/ ; } if (internal_event) NtClose(internal_event); } @@ -975,9 +973,7 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc if (!event && io->u.Status == STATUS_PENDING) { - do - io->u.Status = NtWaitForSingleObject(internal_event, TRUE, NULL); - while(io->u.Status == STATUS_USER_APC); + while (NtWaitForSingleObject(internal_event, TRUE, NULL) == STATUS_USER_APC) /*nothing*/ ; } if (internal_event) NtClose(internal_event); }