Removed several patches (accepted upstream).

This commit is contained in:
Sebastian Lackner 2014-10-01 21:54:28 +02:00
parent fb86960b4f
commit f2f8ea98c5
13 changed files with 20 additions and 435 deletions

View File

@ -35,11 +35,10 @@ Wine. All those differences are also documented on the
Included bugfixes and improvements
==================================
**Bugfixes and features included in the next upcoming release [10]:**
**Bugfixes and features included in the next upcoming release [9]:**
* Correctly treat '.' when checking for empty directories ([Wine Bug #26272](http://bugs.winehq.org/show_bug.cgi?id=26272))
* Do not fail when a used context is passed to wglShareLists ([Wine Bug #11436](http://bugs.winehq.org/show_bug.cgi?id=11436))
* Export ?_BADOFF@std@@3_JB on both i386 and win64 ([Wine Bug #37198](http://bugs.winehq.org/show_bug.cgi?id=37198))
* Fix issues when driver dispatch routine returns different status codes ([Wine Bug #30155](http://bugs.winehq.org/show_bug.cgi?id=30155))
* Limit cross thread access to ImmSet* functions ([Wine Bug #35361](http://bugs.winehq.org/show_bug.cgi?id=35361))
* Send WM_PAINT event during dialog creation ([Wine Bug #35652](http://bugs.winehq.org/show_bug.cgi?id=35652))

3
debian/changelog vendored
View File

@ -12,6 +12,9 @@ wine-compholio (1.7.28) UNRELEASED; urgency=low
* Added patch for IRichEditOle and ITextDocument support for ITextServices.
* Added patch to fix implementation of SH*Shared commands.
* Removed patch to support FIND_FIRST_EX_CASE_SENSITIVE flag in FindFirstFileExW (accepted upstream).
* Removed patch to fix implementation of SH*Shared commands (accepted upstream).
* Removed patch to export ?_BADOFF@std@@3_JB on both i386 and win64 (accepted upstream).
* Partially removed patches for CreateProcess ACLs (accepted upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 21 Sep 2014 01:44:14 +0200
wine-compholio (1.7.27) unstable; urgency=low

View File

@ -39,7 +39,6 @@ PATCHLIST := \
kernel32-SystemFileCacheSize.ok \
libs-Unicode_Collation.ok \
loader-Cmdline_Diagnostics.ok \
msvcp110-Specfile.ok \
ntdll-DOS_Attributes.ok \
ntdll-Dynamic_DST.ok \
ntdll-Exception.ok \
@ -68,7 +67,6 @@ PATCHLIST := \
shell32-RunDLL_CallEntry16.ok \
shell32-SHCreateSessionKey.ok \
shlwapi-PathIsDirectoryEmptyW.ok \
shlwapi-SH_Shared.ok \
shlwapi-UrlCombine.ok \
user32-Dialog_Paint_Event.ok \
user32-GetSystemMetrics.ok \
@ -152,7 +150,7 @@ clean:
# | Modified files:
# | * dlls/d3d9/tests/visual.c, dlls/kernel32/locale.c, dlls/msvcp90/ios.c, dlls/msvcp90/locale.c, dlls/msvcp90/string.c,
# | dlls/netapi32/netapi32.c, dlls/usp10/opentype.c, dlls/winealsa.drv/mmdevdrv.c, dlls/wined3d/glsl_shader.c,
# | dlls/wined3d/resource.c, dlls/wined3d/swapchain.c, server/object.c, tools/makedep.c
# | dlls/wined3d/resource.c, dlls/wined3d/swapchain.c, tools/makedep.c
# |
.INTERMEDIATE: Miscellaneous.ok
Miscellaneous.ok:
@ -526,24 +524,6 @@ loader-Cmdline_Diagnostics.ok:
echo '+ { "loader-Cmdline_Diagnostics", "Michael Müller", "Add commandline option --check-libs to test if shared libraries are installed." },'; \
) > loader-Cmdline_Diagnostics.ok
# Patchset msvcp110-Specfile
# |
# | Included patches:
# | * Export ?_BADOFF@std@@3_JB on both i386 and win64. [by Sebastian Lackner]
# |
# | This patchset fixes the following Wine bugs:
# | * [#37198] Export ?_BADOFF@std@@3_JB on both i386 and win64
# |
# | Modified files:
# | * dlls/msvcp110/msvcp110.spec
# |
.INTERMEDIATE: msvcp110-Specfile.ok
msvcp110-Specfile.ok:
$(call APPLY_FILE,msvcp110-Specfile/0001-msvcp110-Export-_BADOFF-std-3_JB-on-both-i386-and-wi.patch)
@( \
echo '+ { "msvcp110-Specfile", "Sebastian Lackner", "Export ?_BADOFF@std@@3_JB on both i386 and win64." },'; \
) > msvcp110-Specfile.ok
# Patchset ntdll-DOS_Attributes
# |
# | Included patches:
@ -907,15 +887,13 @@ server-Address_Change_Notification.ok:
# | * [#22006] Support for process ACLs
# |
# | Modified files:
# | * dlls/advapi32/tests/security.c, dlls/kernel32/process.c, server/object.c, server/object.h, server/process.c,
# | server/protocol.def
# | * dlls/advapi32/tests/security.c, dlls/kernel32/process.c, server/process.c, server/protocol.def
# |
.INTERMEDIATE: server-CreateProcess_ACLs.ok
server-CreateProcess_ACLs.ok:
$(call APPLY_FILE,server-CreateProcess_ACLs/0001-server-A-new-function-set_sd_defaults_from_token-tha.patch)
$(call APPLY_FILE,server-CreateProcess_ACLs/0002-server-Support-sending-thread-and-process-security-d.patch)
$(call APPLY_FILE,server-CreateProcess_ACLs/0003-kernel32-Implement-passing-a-process-security-descri.patch)
$(call APPLY_FILE,server-CreateProcess_ACLs/0004-advapi32-tests-Add-additional-tests-for-passing-a-th.patch)
$(call APPLY_FILE,server-CreateProcess_ACLs/0001-server-Support-sending-thread-and-process-security-d.patch)
$(call APPLY_FILE,server-CreateProcess_ACLs/0002-kernel32-Implement-passing-a-process-security-descri.patch)
$(call APPLY_FILE,server-CreateProcess_ACLs/0003-advapi32-tests-Add-additional-tests-for-passing-a-th.patch)
@( \
echo '+ { "server-CreateProcess_ACLs", "Joris van der Wel / Sebastian Lackner", "Implement passing ACLs to CreateProcess. [rev 2]" },'; \
) > server-CreateProcess_ACLs.ok
@ -1104,22 +1082,6 @@ shlwapi-PathIsDirectoryEmptyW.ok:
echo '+ { "shlwapi-PathIsDirectoryEmptyW", "Michael Müller", "Correctly treat '\''.'\'' when enumerating files in PathIsDirectoryEmptyW." },'; \
) > shlwapi-PathIsDirectoryEmptyW.ok
# Patchset shlwapi-SH_Shared
# |
# | Included patches:
# | * Fix implementation of SH*Shared commands. [by Sebastian Lackner]
# |
# | Modified files:
# | * dlls/shlwapi/ordinal.c, dlls/shlwapi/tests/ordinal.c
# |
.INTERMEDIATE: shlwapi-SH_Shared.ok
shlwapi-SH_Shared.ok:
$(call APPLY_FILE,shlwapi-SH_Shared/0001-shlwapi-tests-Add-SH-Shared-inter-process-tests.patch)
$(call APPLY_FILE,shlwapi-SH_Shared/0002-shlwapi-Fixed-swapped-argument-order-in-SHLWAPI_DupS.patch)
@( \
echo '+ { "shlwapi-SH_Shared", "Sebastian Lackner", "Fix implementation of SH*Shared commands." },'; \
) > shlwapi-SH_Shared.ok
# Patchset shlwapi-UrlCombine
# |
# | Included patches:

View File

@ -1,16 +1,15 @@
From fec987aaff3478e5325df368cce471109fe3c064 Mon Sep 17 00:00:00 2001
From f56694f318ce0134317b812ff32f6c35875c31b3 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Fri, 8 Aug 2014 19:33:14 -0600
Subject: Appease the blessed version of gcc (4.5) when -Werror is enabled.
---
dlls/d3d9/tests/visual.c | 2 +-
dlls/netapi32/netapi32.c | 2 +-
dlls/winealsa.drv/mmdevdrv.c | 2 +-
dlls/wined3d/glsl_shader.c | 2 +-
server/object.c | 2 +-
tools/makedep.c | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
dlls/d3d9/tests/visual.c | 2 +-
dlls/netapi32/netapi32.c | 2 +-
dlls/winealsa.drv/mmdevdrv.c | 2 +-
dlls/wined3d/glsl_shader.c | 2 +-
tools/makedep.c | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
index 117c8eb..3988628 100644
@ -52,10 +51,10 @@ index a4c02bf..909db53 100644
static const WCHAR dashW[] = {' ','-',' ',0};
static const size_t dashW_len = (sizeof(dashW) / sizeof(*dashW)) - 1;
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 1097d87..38d6cbd 100644
index 34cc567..4f2a6c6 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -5798,7 +5798,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
@@ -5784,7 +5784,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
GLhandleARB vs_id = 0;
GLhandleARB gs_id = 0;
GLhandleARB ps_id = 0;
@ -64,21 +63,8 @@ index 1097d87..38d6cbd 100644
if (!(context->shader_update_mask & (1 << WINED3D_SHADER_TYPE_VERTEX)))
{
diff --git a/server/object.c b/server/object.c
index 11ef0ce..133c6b5 100644
--- a/server/object.c
+++ b/server/object.c
@@ -428,7 +428,7 @@ int default_set_sd( struct object *obj, const struct security_descriptor *sd,
{
struct security_descriptor new_sd, *new_sd_ptr;
int present;
- const SID *owner, *group;
+ const SID *owner = NULL, *group = NULL;
const ACL *sacl, *dacl;
char *ptr;
diff --git a/tools/makedep.c b/tools/makedep.c
index 396a1e3..1261785 100644
index 54aab45..103422e 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -1480,7 +1480,7 @@ static char *get_make_variable( struct makefile *make, const char *name )
@ -91,5 +77,5 @@ index 396a1e3..1261785 100644
expand = get_make_variable( make, name );
if (!expand) return NULL;
--
1.7.9.5
2.1.1

View File

@ -1,25 +0,0 @@
From ad41d07e76a067de254a339ea8a00cff267666b7 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 29 Sep 2014 00:21:28 +0200
Subject: msvcp110: Export ?_BADOFF@std@@3_JB on both i386 and win64.
---
dlls/msvcp110/msvcp110.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/msvcp110/msvcp110.spec b/dlls/msvcp110/msvcp110.spec
index 593976e..6d3118a 100644
--- a/dlls/msvcp110/msvcp110.spec
+++ b/dlls/msvcp110/msvcp110.spec
@@ -1148,7 +1148,7 @@
@ stub -arch=i386 ?_Assign@_Concurrent_queue_iterator_base_v4@details@Concurrency@@IAEXABV123@@Z
@ stub -arch=win64 ?_Assign@_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAAXAEBV123@@Z
@ stub ?_Atexit@@YAXP6AXXZ@Z
-@ extern -arch=win64 ?_BADOFF@std@@3_JB std_BADOFF
+@ extern ?_BADOFF@std@@3_JB std_BADOFF
@ stub ?_Byte_reverse_table@details@Concurrency@@3QBEB
@ cdecl -arch=arm ?_C_str@?$_Yarn@D@std@@QBAPBDXZ(ptr) _Yarn_char_c_str
@ thiscall -arch=i386 ?_C_str@?$_Yarn@D@std@@QBEPBDXZ(ptr) _Yarn_char_c_str
--
2.1.1

View File

@ -1,4 +0,0 @@
Author: Sebastian Lackner
Subject: Export ?_BADOFF@std@@3_JB on both i386 and win64.
Revision: 1
Fixes: [37198] Export ?_BADOFF@std@@3_JB on both i386 and win64

View File

@ -1,101 +0,0 @@
From 99fa68f60166b3064371eb8ef68fcb3d733a28dc Mon Sep 17 00:00:00 2001
From: Joris van der Wel <joris@jorisvanderwel.com>
Date: Sun, 3 Aug 2014 12:52:06 +0200
Subject: server: A new function "set_sd_defaults_from_token" that sets the
security descriptor along with a token that will be used to gather
defaults, instead of always using the primary token. (try 4)
Some objects take their defaults not from a primary token but from a
different one (such as from the impersonation token or the process
token).
This function can be used to create the various set_sd implementations
for the objects that need it.
As a bonus, a NULL token will skip setting any defaults, this is
useful for object implementations that would like to set their
defaults _only_ upon creation.
---
server/object.c | 23 +++++++++++++++--------
server/object.h | 2 ++
2 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/server/object.c b/server/object.c
index 11ef0ce..6389409 100644
--- a/server/object.c
+++ b/server/object.c
@@ -423,8 +423,8 @@ struct security_descriptor *default_get_sd( struct object *obj )
return obj->sd;
}
-int default_set_sd( struct object *obj, const struct security_descriptor *sd,
- unsigned int set_info )
+int set_sd_defaults_from_token( struct object *obj, const struct security_descriptor *sd,
+ unsigned int set_info, struct token *token )
{
struct security_descriptor new_sd, *new_sd_ptr;
int present;
@@ -446,9 +446,9 @@ int default_set_sd( struct object *obj, const struct security_descriptor *sd,
owner = sd_get_owner( obj->sd );
new_sd.owner_len = obj->sd->owner_len;
}
- else
+ else if (token)
{
- owner = token_get_user( current->process->token );
+ owner = token_get_user( token );
new_sd.owner_len = security_sid_len( owner );
}
@@ -462,9 +462,9 @@ int default_set_sd( struct object *obj, const struct security_descriptor *sd,
group = sd_get_group( obj->sd );
new_sd.group_len = obj->sd->group_len;
}
- else
+ else if (token)
{
- group = token_get_primary_group( current->process->token );
+ group = token_get_primary_group( token );
new_sd.group_len = security_sid_len( group );
}
@@ -494,9 +494,9 @@ int default_set_sd( struct object *obj, const struct security_descriptor *sd,
if (obj->sd && present)
new_sd.dacl_len = obj->sd->dacl_len;
- else
+ else if (token)
{
- dacl = token_get_default_dacl( current->process->token );
+ dacl = token_get_default_dacl( token );
new_sd.dacl_len = dacl->AclSize;
}
}
@@ -521,6 +521,13 @@ int default_set_sd( struct object *obj, const struct security_descriptor *sd,
return 1;
}
+/** Set the security descriptor using the current primary token for defaults. */
+int default_set_sd( struct object *obj, const struct security_descriptor *sd,
+ unsigned int set_info )
+{
+ return set_sd_defaults_from_token( obj, sd, set_info, current->process->token );
+}
+
struct object *no_lookup_name( struct object *obj, struct unicode_str *name,
unsigned int attr )
{
diff --git a/server/object.h b/server/object.h
index bb3ff21..dd93b76e 100644
--- a/server/object.h
+++ b/server/object.h
@@ -139,6 +139,8 @@ extern struct fd *no_get_fd( struct object *obj );
extern unsigned int no_map_access( struct object *obj, unsigned int access );
extern struct security_descriptor *default_get_sd( struct object *obj );
extern int default_set_sd( struct object *obj, const struct security_descriptor *sd, unsigned int set_info );
+extern int set_sd_defaults_from_token( struct object *obj, const struct security_descriptor *sd,
+ unsigned int set_info, struct token *token );
extern struct object *no_lookup_name( struct object *obj, struct unicode_str *name, unsigned int attributes );
extern struct object *no_open_file( struct object *obj, unsigned int access, unsigned int sharing,
unsigned int options );
--
1.7.9.5

View File

@ -1,166 +0,0 @@
From 1a0816051ee38e0ec432a7e2fac749c67e50d977 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 1 Oct 2014 02:36:47 +0200
Subject: shlwapi/tests: Add SH*Shared inter-process tests.
---
dlls/shlwapi/tests/ordinal.c | 103 +++++++++++++++++++++++++++++++++++++++----
1 file changed, 95 insertions(+), 8 deletions(-)
diff --git a/dlls/shlwapi/tests/ordinal.c b/dlls/shlwapi/tests/ordinal.c
index cb90d31..2746516 100644
--- a/dlls/shlwapi/tests/ordinal.c
+++ b/dlls/shlwapi/tests/ordinal.c
@@ -444,12 +444,20 @@ static void test_SHSearchMapInt(void)
ok(i == values[0], "Len 3, expected %d, got %d\n", values[0], i);
}
-static void test_alloc_shared(void)
+struct shared_struct
{
+ DWORD value;
+ HANDLE handle;
+};
+
+static void test_alloc_shared(int argc, char **argv)
+{
+ char cmdline[MAX_PATH];
+ PROCESS_INFORMATION pi;
+ STARTUPINFOA si = { 0 };
DWORD procid;
- HANDLE hmem;
- int val;
- int* p;
+ HANDLE hmem, hmem2 = 0;
+ struct shared_struct val, *p;
BOOL ret;
procid=GetCurrentProcessId();
@@ -458,19 +466,84 @@ static void test_alloc_shared(void)
ret = pSHFreeShared(hmem, procid);
ok( ret, "SHFreeShared failed: %u\n", GetLastError());
- val=0x12345678;
- hmem=pSHAllocShared(&val,4,procid);
+ val.value = 0x12345678;
+ val.handle = 0;
+ hmem = pSHAllocShared(&val, sizeof(val), procid);
ok(hmem!=NULL,"SHAllocShared(NULL...) failed: %u\n", GetLastError());
p=pSHLockShared(hmem,procid);
ok(p!=NULL,"SHLockShared failed: %u\n", GetLastError());
if (p!=NULL)
- ok(*p==val,"Wrong value in shared memory: %d instead of %d\n",*p,val);
+ ok(p->value == 0x12345678, "Wrong value in shared memory: %d instead of %d\n", p->value, 0x12345678);
ret = pSHUnlockShared(p);
ok( ret, "SHUnlockShared failed: %u\n", GetLastError());
+ sprintf(cmdline, "%s %s %d %p", argv[0], argv[1], procid, hmem);
+ ret = CreateProcessA(NULL, cmdline, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
+ ok(ret, "could not create child process error: %u\n", GetLastError());
+ if (ret)
+ {
+ winetest_wait_child_process(pi.hProcess);
+ CloseHandle(pi.hThread);
+ CloseHandle(pi.hProcess);
+
+ p = pSHLockShared(hmem, procid);
+ ok(p != NULL,"SHLockShared failed: %u\n", GetLastError());
+ if (p != NULL && p->value != 0x12345678)
+ {
+ ok(p->value == 0x12345679, "Wrong value in shared memory: %d instead of %d\n", p->value, 0x12345679);
+ hmem2 = p->handle;
+ ok(hmem2 != NULL, "Expected handle in shared memory\n");
+ }
+ ret = pSHUnlockShared(p);
+ ok(ret, "SHUnlockShared failed: %u\n", GetLastError());
+ }
+
ret = pSHFreeShared(hmem, procid);
ok( ret, "SHFreeShared failed: %u\n", GetLastError());
+
+ if (hmem2)
+ {
+ p = pSHLockShared(hmem2, procid);
+ todo_wine
+ ok(p != NULL,"SHLockShared failed: %u\n", GetLastError());
+ if (p != NULL)
+ ok(p->value == 0xDEADBEEF, "Wrong value in shared memory: %d instead of %d\n", p->value, 0xDEADBEEF);
+ ret = pSHUnlockShared(p);
+ todo_wine
+ ok(ret, "SHUnlockShared failed: %u\n", GetLastError());
+
+ ret = pSHFreeShared(hmem2, procid);
+ todo_wine
+ ok(ret, "SHFreeShared failed: %u\n", GetLastError());
+ }
+}
+
+static void test_alloc_shared_remote(DWORD procid, HANDLE hmem)
+{
+ struct shared_struct val, *p;
+ BOOL ret;
+
+ p = pSHLockShared(hmem, procid);
+ ok(p != NULL || broken(p == NULL) /* Windows 7/8 */,"SHLockShared failed: %u\n", GetLastError());
+ if (p == NULL)
+ {
+ win_skip("Subprocess failed to modify shared memory, skipping test\n");
+ return;
+ }
+
+ ok(p->value == 0x12345678, "Wrong value in shared memory: %d instead of %d\n", p->value, 0x12345678);
+
+ val.value = 0xDEADBEEF;
+ val.handle = 0;
+
+ p->handle = pSHAllocShared(&val, sizeof(val), procid);
+ ok(p->handle != NULL, "SHAllocShared(NULL...) failed: %u\n", GetLastError());
+ p->value++;
+
+ ret = pSHUnlockShared(p);
+ ok(ret, "SHUnlockShared failed: %u\n", GetLastError());
+
}
static void test_fdsa(void)
@@ -3057,6 +3130,9 @@ static void test_SHSetParentHwnd(void)
START_TEST(ordinal)
{
+ char **argv;
+ int argc;
+
hShlwapi = GetModuleHandleA("shlwapi.dll");
is_win2k_and_lower = GetProcAddress(hShlwapi, "StrChrNW") == 0;
is_win9x = GetProcAddress(hShlwapi, (LPSTR)99) == 0; /* StrCpyNXA */
@@ -3069,6 +3145,17 @@ START_TEST(ordinal)
init_pointers();
+ argc = winetest_get_mainargs(&argv);
+ if (argc >= 4)
+ {
+ DWORD procid;
+ HANDLE hmem;
+ sscanf(argv[2], "%d", &procid);
+ sscanf(argv[3], "%p", &hmem);
+ test_alloc_shared_remote(procid, hmem);
+ return;
+ }
+
hmlang = LoadLibraryA("mlang.dll");
pLcidToRfc1766A = (void *)GetProcAddress(hmlang, "LcidToRfc1766A");
@@ -3077,7 +3164,7 @@ START_TEST(ordinal)
test_GetAcceptLanguagesA();
test_SHSearchMapInt();
- test_alloc_shared();
+ test_alloc_shared(argc, argv);
test_fdsa();
test_GetShellSecurityDescriptor();
test_SHPackDispParams();
--
2.1.1

View File

@ -1,66 +0,0 @@
From b88dc3e90eba2f639ee572a93b1885da39b9d52c Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 1 Oct 2014 02:39:49 +0200
Subject: shlwapi: Fixed swapped argument order in SHLWAPI_DupSharedHandle
command.
---
dlls/shlwapi/ordinal.c | 6 +++---
dlls/shlwapi/tests/ordinal.c | 3 ---
2 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/dlls/shlwapi/ordinal.c b/dlls/shlwapi/ordinal.c
index 303c63a..e5da1cf 100644
--- a/dlls/shlwapi/ordinal.c
+++ b/dlls/shlwapi/ordinal.c
@@ -106,7 +106,7 @@ static HANDLE SHLWAPI_DupSharedHandle(HANDLE hShared, DWORD dwDstProcId,
if (hSrc)
{
/* Make handle available to dest process */
- if (!DuplicateHandle(hDst, hShared, hSrc, &hRet,
+ if (!DuplicateHandle(hSrc, hShared, hDst, &hRet,
dwAccess, 0, dwOptions | DUPLICATE_SAME_ACCESS))
hRet = NULL;
@@ -201,7 +201,7 @@ PVOID WINAPI SHLockShared(HANDLE hShared, DWORD dwProcId)
TRACE("(%p %d)\n", hShared, dwProcId);
/* Get handle to shared memory for current process */
- hDup = SHLWAPI_DupSharedHandle(hShared, dwProcId, GetCurrentProcessId(),
+ hDup = SHLWAPI_DupSharedHandle(hShared, GetCurrentProcessId(), dwProcId,
FILE_MAP_ALL_ACCESS, 0);
/* Get View */
pMapped = MapViewOfFile(hDup, FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, 0);
@@ -252,7 +252,7 @@ BOOL WINAPI SHFreeShared(HANDLE hShared, DWORD dwProcId)
TRACE("(%p %d)\n", hShared, dwProcId);
/* Get a copy of the handle for our process, closing the source handle */
- hClose = SHLWAPI_DupSharedHandle(hShared, dwProcId, GetCurrentProcessId(),
+ hClose = SHLWAPI_DupSharedHandle(hShared, GetCurrentProcessId(), dwProcId,
FILE_MAP_ALL_ACCESS,DUPLICATE_CLOSE_SOURCE);
/* Close local copy */
return CloseHandle(hClose);
diff --git a/dlls/shlwapi/tests/ordinal.c b/dlls/shlwapi/tests/ordinal.c
index 2746516..614bd94 100644
--- a/dlls/shlwapi/tests/ordinal.c
+++ b/dlls/shlwapi/tests/ordinal.c
@@ -505,16 +505,13 @@ static void test_alloc_shared(int argc, char **argv)
if (hmem2)
{
p = pSHLockShared(hmem2, procid);
- todo_wine
ok(p != NULL,"SHLockShared failed: %u\n", GetLastError());
if (p != NULL)
ok(p->value == 0xDEADBEEF, "Wrong value in shared memory: %d instead of %d\n", p->value, 0xDEADBEEF);
ret = pSHUnlockShared(p);
- todo_wine
ok(ret, "SHUnlockShared failed: %u\n", GetLastError());
ret = pSHFreeShared(hmem2, procid);
- todo_wine
ok(ret, "SHFreeShared failed: %u\n", GetLastError());
}
}
--
2.1.1

View File

@ -1,3 +0,0 @@
Author: Sebastian Lackner
Subject: Fix implementation of SH*Shared commands.
Revision: 1