Added patch to fix error handling in OpenSCManagerW (fixes testfailure in advapi32/service tests when named pipe messagemode is available).

This commit is contained in:
Sebastian Lackner 2015-05-08 21:55:25 +02:00
parent 7fd064ce86
commit d6a8a1d8a1
4 changed files with 54 additions and 0 deletions

2
debian/changelog vendored
View File

@ -13,6 +13,8 @@ wine-staging (1.7.43) UNRELEASED; urgency=low
* Added patch with stub for winsta.WinStationEnumerateW.
* Added patch to implement support for ObjectTypeInformation class support in
NtQueryObject.
* Added patch to fix error handling in OpenSCManagerW (fixes testfailure in
advapi32/service tests when named pipe messagemode is available).
* Removed patch to use lockfree implementation for FD cache (accepted
upstream).
* Added patch to fix leak of async handle in pipe_server_flush.

View File

@ -0,0 +1,28 @@
From 0f3d7e07b53bd1a7c8735bb2c0fa3da0b75dcb96 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Fri, 8 May 2015 21:53:30 +0200
Subject: advapi32: Fix error handling in OpenSCManagerW.
---
dlls/advapi32/service.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/advapi32/service.c b/dlls/advapi32/service.c
index 0eb0a47..111009d 100644
--- a/dlls/advapi32/service.c
+++ b/dlls/advapi32/service.c
@@ -868,8 +868,9 @@ SC_HANDLE WINAPI OpenSCManagerW( LPCWSTR lpMachineName, LPCWSTR lpDatabaseName,
DWORD r;
r = SERV_OpenSCManagerW(lpMachineName, lpDatabaseName, dwDesiredAccess, &handle);
- if (r!=ERROR_SUCCESS)
- SetLastError(r);
+
+ /* last error could still be ERROR_MORE_DATA, so set error unconditionally */
+ SetLastError(r);
return handle;
}
--
2.4.0

View File

@ -1,3 +1,4 @@
Fixes: [16550] Fix for ConnectNamedPort return value in overlapped mode
Fixes: [17195] Support for named pipe message mode (Linux only)
Fixes: Improve ReadDataAvailable handling in FilePipeLocalInformation class
Depends: advapi32-OpenSCManagerW

View File

@ -81,6 +81,7 @@ patch_enable_all ()
enable_Staging="$1"
enable_advapi32_ImpersonateAnonymousToken="$1"
enable_advapi32_LsaLookupSids="$1"
enable_advapi32_OpenSCManagerW="$1"
enable_atl_AtlIPersistPropertyBag_Save="$1"
enable_browseui_Progress_Dialog="$1"
enable_category_stable="$1"
@ -301,6 +302,9 @@ patch_enable ()
advapi32-LsaLookupSids)
enable_advapi32_LsaLookupSids="$2"
;;
advapi32-OpenSCManagerW)
enable_advapi32_OpenSCManagerW="$2"
;;
atl-AtlIPersistPropertyBag_Save)
enable_atl_AtlIPersistPropertyBag_Save="$2"
;;
@ -1521,6 +1525,13 @@ if test "$enable_mountmgr_Null_Device" -eq 1; then
enable_ntdll_Pipe_SpecialCharacters=1
fi
if test "$enable_kernel32_Named_Pipe" -eq 1; then
if test "$enable_advapi32_OpenSCManagerW" -gt 1; then
abort "Patchset advapi32-OpenSCManagerW disabled, but kernel32-Named_Pipe depends on that."
fi
enable_advapi32_OpenSCManagerW=1
fi
if test "$enable_kernel32_CopyFileEx" -eq 1; then
if test "$enable_kernel32_SetFileInformationByHandle" -gt 1; then
abort "Patchset kernel32-SetFileInformationByHandle disabled, but kernel32-CopyFileEx depends on that."
@ -1830,6 +1841,18 @@ if test "$enable_advapi32_LsaLookupSids" -eq 1; then
) >> "$patchlist"
fi
# Patchset advapi32-OpenSCManagerW
# |
# | Modified files:
# | * dlls/advapi32/service.c
# |
if test "$enable_advapi32_OpenSCManagerW" -eq 1; then
patch_apply advapi32-OpenSCManagerW/0001-advapi32-Fix-error-handling-in-OpenSCManagerW.patch
(
echo '+ { "Sebastian Lackner", "advapi32: Fix error handling in OpenSCManagerW.", 1 },';
) >> "$patchlist"
fi
# Patchset atl-AtlIPersistPropertyBag_Save
# |
# | This patchset fixes the following Wine bugs: