Commit 173ffe50 authored by Fabian Maurer's avatar Fabian Maurer Committed by Alexandre Julliard

ntdll: Prevent double free (Coverity).

The fd gets overwritten, therefore we need to close it before doing so. Signed-off-by: 's avatarFabian Maurer <dark.shadow4@web.de>
parent c7b8da64
...@@ -4417,12 +4417,12 @@ NTSTATUS WINAPI NtQueryInformationFile( HANDLE handle, IO_STATUS_BLOCK *io, ...@@ -4417,12 +4417,12 @@ NTSTATUS WINAPI NtQueryInformationFile( HANDLE handle, IO_STATUS_BLOCK *io,
if (size > 0x10000) size = 0x10000; if (size > 0x10000) size = 0x10000;
if ((tmpbuf = malloc( size ))) if ((tmpbuf = malloc( size )))
{ {
if (needs_close) close( fd );
if (!server_get_unix_fd( handle, FILE_READ_DATA, &fd, &needs_close, NULL, NULL )) if (!server_get_unix_fd( handle, FILE_READ_DATA, &fd, &needs_close, NULL, NULL ))
{ {
int res = recv( fd, tmpbuf, size, MSG_PEEK ); int res = recv( fd, tmpbuf, size, MSG_PEEK );
info->MessagesAvailable = (res > 0); info->MessagesAvailable = (res > 0);
info->NextMessageSize = (res >= 0) ? res : MAILSLOT_NO_MESSAGE; info->NextMessageSize = (res >= 0) ? res : MAILSLOT_NO_MESSAGE;
if (needs_close) close( fd );
} }
free( tmpbuf ); free( tmpbuf );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment