diff --git a/README.md b/README.md index f1b65028..8b91f111 100644 --- a/README.md +++ b/README.md @@ -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)) diff --git a/debian/changelog b/debian/changelog index 9d9d770c..49879f3e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 Sun, 21 Sep 2014 01:44:14 +0200 wine-compholio (1.7.27) unstable; urgency=low diff --git a/patches/Makefile b/patches/Makefile index 5007ec2f..8ee7f821 100644 --- a/patches/Makefile +++ b/patches/Makefile @@ -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: diff --git a/patches/Miscellaneous/0005-Appease-the-blessed-version-of-gcc-4.5-when-Werror-i.patch b/patches/Miscellaneous/0005-Appease-the-blessed-version-of-gcc-4.5-when-Werror-i.patch index f6c7c679..21f63edf 100644 --- a/patches/Miscellaneous/0005-Appease-the-blessed-version-of-gcc-4.5-when-Werror-i.patch +++ b/patches/Miscellaneous/0005-Appease-the-blessed-version-of-gcc-4.5-when-Werror-i.patch @@ -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" 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 diff --git a/patches/msvcp110-Specfile/0001-msvcp110-Export-_BADOFF-std-3_JB-on-both-i386-and-wi.patch b/patches/msvcp110-Specfile/0001-msvcp110-Export-_BADOFF-std-3_JB-on-both-i386-and-wi.patch deleted file mode 100644 index c8581699..00000000 --- a/patches/msvcp110-Specfile/0001-msvcp110-Export-_BADOFF-std-3_JB-on-both-i386-and-wi.patch +++ /dev/null @@ -1,25 +0,0 @@ -From ad41d07e76a067de254a339ea8a00cff267666b7 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -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 - diff --git a/patches/msvcp110-Specfile/definition b/patches/msvcp110-Specfile/definition deleted file mode 100644 index 52eb97d8..00000000 --- a/patches/msvcp110-Specfile/definition +++ /dev/null @@ -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 diff --git a/patches/server-CreateProcess_ACLs/0001-server-A-new-function-set_sd_defaults_from_token-tha.patch b/patches/server-CreateProcess_ACLs/0001-server-A-new-function-set_sd_defaults_from_token-tha.patch deleted file mode 100644 index b5ef7224..00000000 --- a/patches/server-CreateProcess_ACLs/0001-server-A-new-function-set_sd_defaults_from_token-tha.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 99fa68f60166b3064371eb8ef68fcb3d733a28dc Mon Sep 17 00:00:00 2001 -From: Joris van der Wel -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 - diff --git a/patches/server-CreateProcess_ACLs/0002-server-Support-sending-thread-and-process-security-d.patch b/patches/server-CreateProcess_ACLs/0001-server-Support-sending-thread-and-process-security-d.patch similarity index 100% rename from patches/server-CreateProcess_ACLs/0002-server-Support-sending-thread-and-process-security-d.patch rename to patches/server-CreateProcess_ACLs/0001-server-Support-sending-thread-and-process-security-d.patch diff --git a/patches/server-CreateProcess_ACLs/0003-kernel32-Implement-passing-a-process-security-descri.patch b/patches/server-CreateProcess_ACLs/0002-kernel32-Implement-passing-a-process-security-descri.patch similarity index 100% rename from patches/server-CreateProcess_ACLs/0003-kernel32-Implement-passing-a-process-security-descri.patch rename to patches/server-CreateProcess_ACLs/0002-kernel32-Implement-passing-a-process-security-descri.patch diff --git a/patches/server-CreateProcess_ACLs/0004-advapi32-tests-Add-additional-tests-for-passing-a-th.patch b/patches/server-CreateProcess_ACLs/0003-advapi32-tests-Add-additional-tests-for-passing-a-th.patch similarity index 100% rename from patches/server-CreateProcess_ACLs/0004-advapi32-tests-Add-additional-tests-for-passing-a-th.patch rename to patches/server-CreateProcess_ACLs/0003-advapi32-tests-Add-additional-tests-for-passing-a-th.patch diff --git a/patches/shlwapi-SH_Shared/0001-shlwapi-tests-Add-SH-Shared-inter-process-tests.patch b/patches/shlwapi-SH_Shared/0001-shlwapi-tests-Add-SH-Shared-inter-process-tests.patch deleted file mode 100644 index 05d2b260..00000000 --- a/patches/shlwapi-SH_Shared/0001-shlwapi-tests-Add-SH-Shared-inter-process-tests.patch +++ /dev/null @@ -1,166 +0,0 @@ -From 1a0816051ee38e0ec432a7e2fac749c67e50d977 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -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 - diff --git a/patches/shlwapi-SH_Shared/0002-shlwapi-Fixed-swapped-argument-order-in-SHLWAPI_DupS.patch b/patches/shlwapi-SH_Shared/0002-shlwapi-Fixed-swapped-argument-order-in-SHLWAPI_DupS.patch deleted file mode 100644 index f66ea8b4..00000000 --- a/patches/shlwapi-SH_Shared/0002-shlwapi-Fixed-swapped-argument-order-in-SHLWAPI_DupS.patch +++ /dev/null @@ -1,66 +0,0 @@ -From b88dc3e90eba2f639ee572a93b1885da39b9d52c Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -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 - diff --git a/patches/shlwapi-SH_Shared/definition b/patches/shlwapi-SH_Shared/definition deleted file mode 100644 index e39f1539..00000000 --- a/patches/shlwapi-SH_Shared/definition +++ /dev/null @@ -1,3 +0,0 @@ -Author: Sebastian Lackner -Subject: Fix implementation of SH*Shared commands. -Revision: 1