You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Added patch to avoid setting error when NULL is passed to SHMapHandle.
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
From 8a51e9551f4dcb89ec57a713f9ee153fc961a64d Mon Sep 17 00:00:00 2001
|
||||
From: Bruno Jesus <00cpxxx@gmail.com>
|
||||
Date: Tue, 1 Dec 2015 19:51:20 +0800
|
||||
Subject: shlwapi/tests: Test NULL handle duplication in SHMapHandle()
|
||||
|
||||
Related to https://bugs.winehq.org/show_bug.cgi?id=36838
|
||||
|
||||
Not sure when Olivier Dierick will be back to this so I'm sending the
|
||||
test I made.
|
||||
|
||||
Signed-off-by: Bruno Jesus <00cpxxx@gmail.com>
|
||||
---
|
||||
dlls/shlwapi/tests/ordinal.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/dlls/shlwapi/tests/ordinal.c b/dlls/shlwapi/tests/ordinal.c
|
||||
index bd3d46a..df07df4 100644
|
||||
--- a/dlls/shlwapi/tests/ordinal.c
|
||||
+++ b/dlls/shlwapi/tests/ordinal.c
|
||||
@@ -550,6 +550,12 @@ static void test_alloc_shared_remote(DWORD procid, HANDLE hmem)
|
||||
ok(ret, "SHUnlockShared failed: %u\n", GetLastError());
|
||||
|
||||
/* test SHMapHandle */
|
||||
+ SetLastError(0xdeadbeef);
|
||||
+ hmem2 = pSHMapHandle(NULL, procid, GetCurrentProcessId(), 0, 0);
|
||||
+ ok(hmem2 == NULL, "expected NULL, got new handle\n");
|
||||
+todo_wine
|
||||
+ ok(GetLastError() == 0xdeadbeef, "last error should not have changed, got %u\n", GetLastError());
|
||||
+
|
||||
hmem2 = pSHMapHandle(hmem, procid, GetCurrentProcessId(), 0, 0);
|
||||
|
||||
/* It seems like Windows Vista/2008 uses a different internal implementation
|
||||
--
|
||||
2.6.4
|
||||
|
@@ -0,0 +1,43 @@
|
||||
From b1f09e2b10f9a763e3683b561b211414af6f11fb Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 27 Dec 2015 18:45:11 +0100
|
||||
Subject: shlwapi: SHMapHandle should not set error when NULL is passed as
|
||||
hShared.
|
||||
|
||||
---
|
||||
dlls/shlwapi/ordinal.c | 6 ++++++
|
||||
dlls/shlwapi/tests/ordinal.c | 1 -
|
||||
2 files changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/shlwapi/ordinal.c b/dlls/shlwapi/ordinal.c
|
||||
index 699fcc6..7832036 100644
|
||||
--- a/dlls/shlwapi/ordinal.c
|
||||
+++ b/dlls/shlwapi/ordinal.c
|
||||
@@ -98,6 +98,12 @@ HANDLE WINAPI SHMapHandle(HANDLE hShared, DWORD dwSrcProcId, DWORD dwDstProcId,
|
||||
TRACE("(%p,%d,%d,%08x,%08x)\n", hShared, dwDstProcId, dwSrcProcId,
|
||||
dwAccess, dwOptions);
|
||||
|
||||
+ if (!hShared)
|
||||
+ {
|
||||
+ TRACE("Returning handle NULL\n");
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
/* Get dest process handle */
|
||||
if (dwDstProcId == dwMyProcId)
|
||||
hDst = GetCurrentProcess();
|
||||
diff --git a/dlls/shlwapi/tests/ordinal.c b/dlls/shlwapi/tests/ordinal.c
|
||||
index df07df4..d0f7b56 100644
|
||||
--- a/dlls/shlwapi/tests/ordinal.c
|
||||
+++ b/dlls/shlwapi/tests/ordinal.c
|
||||
@@ -553,7 +553,6 @@ static void test_alloc_shared_remote(DWORD procid, HANDLE hmem)
|
||||
SetLastError(0xdeadbeef);
|
||||
hmem2 = pSHMapHandle(NULL, procid, GetCurrentProcessId(), 0, 0);
|
||||
ok(hmem2 == NULL, "expected NULL, got new handle\n");
|
||||
-todo_wine
|
||||
ok(GetLastError() == 0xdeadbeef, "last error should not have changed, got %u\n", GetLastError());
|
||||
|
||||
hmem2 = pSHMapHandle(hmem, procid, GetCurrentProcessId(), 0, 0);
|
||||
--
|
||||
2.6.4
|
||||
|
1
patches/shlwapi-SHMapHandle/definition
Normal file
1
patches/shlwapi-SHMapHandle/definition
Normal file
@@ -0,0 +1 @@
|
||||
Fixes: SHMapHandle should not set error when NULL is passed as hShared
|
Reference in New Issue
Block a user