Module: wine Branch: master Commit: 173ffe5011d91e945d4e9ee8ed9619d7982a957c URL: https://gitlab.winehq.org/wine/wine/-/commit/173ffe5011d91e945d4e9ee8ed9619d...
Author: Fabian Maurer dark.shadow4@web.de Date: Mon May 16 18:39:35 2022 +0200
ntdll: Prevent double free (Coverity).
The fd gets overwritten, therefore we need to close it before doing so.
Signed-off-by: Fabian Maurer dark.shadow4@web.de
---
dlls/ntdll/unix/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c index e203ff6c41d..c7ba12a5c13 100644 --- a/dlls/ntdll/unix/file.c +++ b/dlls/ntdll/unix/file.c @@ -4417,12 +4417,12 @@ NTSTATUS WINAPI NtQueryInformationFile( HANDLE handle, IO_STATUS_BLOCK *io, if (size > 0x10000) size = 0x10000; if ((tmpbuf = malloc( size ))) { + if (needs_close) close( fd ); if (!server_get_unix_fd( handle, FILE_READ_DATA, &fd, &needs_close, NULL, NULL )) { int res = recv( fd, tmpbuf, size, MSG_PEEK ); info->MessagesAvailable = (res > 0); info->NextMessageSize = (res >= 0) ? res : MAILSLOT_NO_MESSAGE; - if (needs_close) close( fd ); } free( tmpbuf ); }