mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Removed several patches (accepted upstream).
This commit is contained in:
parent
fb86960b4f
commit
f2f8ea98c5
@ -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
3
debian/changelog
vendored
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -1,3 +0,0 @@
|
||||
Author: Sebastian Lackner
|
||||
Subject: Fix implementation of SH*Shared commands.
|
||||
Revision: 1
|
Loading…
x
Reference in New Issue
Block a user