08.05.2010 9:10, Henry Blum wrote:
> ---
> dlls/kernel32/process.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
> index 9a1f2f5..6dcad8f 100644
> --- a/dlls/kernel32/process.c
> +++ b/dlls/kernel32/process.c
> @@ -2657,7 +2657,7 @@ HANDLE WINAPI OpenProcess( DWORD access, BOOL
> inherit, DWORD id )
> if (GetVersion() & 0x80000000) access = PROCESS_ALL_ACCESS;
> status = NtOpenProcess(&handle, access, &attr, &cid);
> - if (status != STATUS_SUCCESS)
> + if (status != STATUS_SUCCESS || (access & PROCESS_VM_WRITE))
> {
> SetLastError( RtlNtStatusToDosError(status) );
> return NULL;
Wouldn't this pretend operation failed for every request with
PROCESS_VM_WRITE, even if NtOpenProcess succeeded, and leak a handle?
Which bug should it fix?