Added patch to fix ConnectNamedPort return value in overlapped mode.

This commit is contained in:
Erich E. Hoover 2014-07-26 14:12:52 -06:00
parent ddf264985b
commit d703791841
4 changed files with 34 additions and 5 deletions

View File

@ -11,6 +11,7 @@ These patches fix the following Wine bugs:
* Support for Junction Points ([Wine Bug #12401](http://bugs.winehq.org/show_bug.cgi?id=12401 "Support junction points, i.e. DeviceIoCtl(FSCTL_SET_REPARSE_POINT/FSCTL_GET_REPARSE_POINT)"))
* Implement a Microsoft Yahei replacement font ([Wine Bug #13829](http://bugs.winehq.org/show_bug.cgi?id=13829 "Wine does not have CJK fonts"))
* GetSecurityInfo returns NULL DACL for process object ([Wine Bug #15980](http://bugs.winehq.org/show_bug.cgi?id=15980 "Rhapsody 2 crashes on startup (GetSecurityInfo returns NULL DACL for process object)"))
* Fix for ConnectNamedPort return value in overlapped mode ([Wine Bug #16550](http://bugs.winehq.org/show_bug.cgi?id=16550 "ConnectNamedPort should never return OK in overlapped mode (affects chromium ui_tests.exe)"))
* Workaround for TransactNamedPipe not being supported ([Wine Bug #17273](http://bugs.winehq.org/show_bug.cgi?id=17273 "Many apps and games need SetNamedPipeHandleState implementation (support for named pipe message mode)(FireFox+Flash, Win8/NET 4.x SDK/vcrun2012, WiX installers)"))
* Support for process ACLs ([Wine Bug #22006](http://bugs.winehq.org/show_bug.cgi?id=22006 "OpenProcess does not enforce ACL"))
* Return correct IMediaSeeking stream positions in quartz ([Wine Bug #23174](http://bugs.winehq.org/show_bug.cgi?id=23174 "Fallout 3: Diologue and Video/sound issues"))

View File

@ -150,9 +150,10 @@ kernel32-GetVolumePathName.ok:
# Patchset kernel32-Named_Pipe
# |
# | Included patches:
# | * Change return value of stub SetNamedPipeHandleState to TRUE. [by Sebastian Lackner]
# | * Support for NamedPipe operations. [rev 2, by Sebastian Lackner / Dan Kegel]
# |
# | This patchset fixes the following Wine bugs:
# | * [#16550] ConnectNamedPort should never return OK in overlapped mode (affects chromium ui_tests.exe)
# | * [#17273] Many apps and games need SetNamedPipeHandleState implementation (support for named pipe message
# | mode)(FireFox+Flash, Win8/NET 4.x SDK/vcrun2012, WiX installers)
# |
@ -161,8 +162,9 @@ kernel32-GetVolumePathName.ok:
# |
kernel32-Named_Pipe.ok:
$(PATCH) < kernel32-Named_Pipe/0001-kernel32-Change-return-value-of-stub-SetNamedPipeHandl.patch
$(PATCH) < kernel32-Named_Pipe/0002-kernel32-ConnectNamedPort-should-return-FALSE-and-se.patch
@( \
echo '+ { "kernel32-Named_Pipe", "Sebastian Lackner", "Change return value of stub SetNamedPipeHandleState to TRUE." },'; \
echo '+ { "kernel32-Named_Pipe", "Sebastian Lackner / Dan Kegel", "Support for NamedPipe operations. [rev 2]" },'; \
) > kernel32-Named_Pipe.ok
# Patchset loader-Cmdline_Diagnostics

View File

@ -0,0 +1,25 @@
From 873c6600c711af413a0f2b8e71ebf74e3638f474 Mon Sep 17 00:00:00 2001
From: Dan Kegel <dank@kegel.com>
Date: Sat, 26 Jul 2014 14:07:55 -0600
Subject: kernel32: ConnectNamedPort should return FALSE and set
ERROR_PIPE_CONNECTED on success in overlapped mode.
---
dlls/kernel32/sync.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/dlls/kernel32/sync.c b/dlls/kernel32/sync.c
index a274fd3..cf84269 100644
--- a/dlls/kernel32/sync.c
+++ b/dlls/kernel32/sync.c
@@ -1609,6 +1609,7 @@ BOOL WINAPI ConnectNamedPipe(HANDLE hPipe, LPOVERLAPPED overlapped)
overlapped ? (IO_STATUS_BLOCK *)overlapped : &status_block,
FSCTL_PIPE_LISTEN, NULL, 0, NULL, 0);
+ if (overlapped && status == STATUS_SUCCESS) status = STATUS_PIPE_CONNECTED;
if (status == STATUS_SUCCESS) return TRUE;
SetLastError( RtlNtStatusToDosError(status) );
return FALSE;
--
1.7.9.5

View File

@ -1,5 +1,6 @@
Author: Sebastian Lackner
Subject: Change return value of stub SetNamedPipeHandleState to TRUE.
Revision: 1
Author: Sebastian Lackner / Dan Kegel
Subject: Support for NamedPipe operations.
Revision: 2
Fixes: [16550] Fix for ConnectNamedPort return value in overlapped mode
Fixes: [17273] Workaround for TransactNamedPipe not being supported