diff --git a/patches/05-Transact_Named_Pipe/0001-kernel32-Change-return-value-of-stub-SetNamedPipeHandl.patch b/patches/05-Named_Pipe/0001-kernel32-Change-return-value-of-stub-SetNamedPipeHandl.patch similarity index 100% rename from patches/05-Transact_Named_Pipe/0001-kernel32-Change-return-value-of-stub-SetNamedPipeHandl.patch rename to patches/05-Named_Pipe/0001-kernel32-Change-return-value-of-stub-SetNamedPipeHandl.patch diff --git a/patches/05-Named_Pipe/0002-server-Fix-return-value-for-FSCTL_PIPE_WAIT-if-pipe-.patch b/patches/05-Named_Pipe/0002-server-Fix-return-value-for-FSCTL_PIPE_WAIT-if-pipe-.patch new file mode 100644 index 00000000..eacdfc4f --- /dev/null +++ b/patches/05-Named_Pipe/0002-server-Fix-return-value-for-FSCTL_PIPE_WAIT-if-pipe-.patch @@ -0,0 +1,43 @@ +From 453924c0861d4d1844f8b48c05dba3b2cf49b4ae Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michael=20M=C3=BCller?= +Date: Sat, 31 May 2014 02:44:36 +0200 +Subject: server: Fix return value for FSCTL_PIPE_WAIT if pipe does not exist + +--- + dlls/kernel32/tests/pipe.c | 6 ++++++ + server/named_pipe.c | 2 +- + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/dlls/kernel32/tests/pipe.c b/dlls/kernel32/tests/pipe.c +index b192f96..f7c7531 100644 +--- a/dlls/kernel32/tests/pipe.c ++++ b/dlls/kernel32/tests/pipe.c +@@ -60,6 +60,12 @@ static void test_CreateNamedPipe(int pipemode) + trace("test_CreateNamedPipe starting in byte mode\n"); + else + trace("test_CreateNamedPipe starting in message mode\n"); ++ ++ /* Wait for non existing pipe */ ++ ret = WaitNamedPipeA(PIPENAME, 2000); ++ ok(ret == 0, "WaitNamedPipe returned %d for non existing pipe\n", ret); ++ ok(GetLastError() == ERROR_FILE_NOT_FOUND, "wrong error %u\n", GetLastError()); ++ + /* Bad parameter checks */ + hnp = CreateNamedPipeA("not a named pipe", PIPE_ACCESS_DUPLEX, pipemode | PIPE_WAIT, + /* nMaxInstances */ 1, +diff --git a/server/named_pipe.c b/server/named_pipe.c +index 6ba2145..c9be0c2 100644 +--- a/server/named_pipe.c ++++ b/server/named_pipe.c +@@ -887,7 +887,7 @@ static obj_handle_t named_pipe_device_ioctl( struct fd *fd, ioctl_code_t code, c + name.len = (buffer->NameLength / sizeof(WCHAR)) * sizeof(WCHAR); + if (!(pipe = (struct named_pipe *)find_object( device->pipes, &name, OBJ_CASE_INSENSITIVE ))) + { +- set_error( STATUS_PIPE_NOT_AVAILABLE ); ++ set_error( STATUS_OBJECT_NAME_NOT_FOUND ); + return 0; + } + if (!(server = find_available_server( pipe ))) +-- +1.8.3.2 + diff --git a/patches/05-Named_Pipe/1d0160c7-42a4-491c-9676-fa3b1859aaab.def b/patches/05-Named_Pipe/1d0160c7-42a4-491c-9676-fa3b1859aaab.def new file mode 100644 index 00000000..ddaf2692 --- /dev/null +++ b/patches/05-Named_Pipe/1d0160c7-42a4-491c-9676-fa3b1859aaab.def @@ -0,0 +1,4 @@ +Revision: 1 +Author: Michael Müller +Title: Fix return value of WaitNamedPipe if pipe does not exist. + diff --git a/patches/05-Transact_Named_Pipe/cbe240e8-2c58-430a-b61c-7fbb9d0e1e11.def b/patches/05-Named_Pipe/cbe240e8-2c58-430a-b61c-7fbb9d0e1e11.def similarity index 100% rename from patches/05-Transact_Named_Pipe/cbe240e8-2c58-430a-b61c-7fbb9d0e1e11.def rename to patches/05-Named_Pipe/cbe240e8-2c58-430a-b61c-7fbb9d0e1e11.def diff --git a/patches/11-QueryInformationToken/0001-ntdll-Stub-TokenAppContainerSid-in-NtQueryInformatio.patch b/patches/11-QueryInformationToken/0001-ntdll-Stub-TokenAppContainerSid-in-NtQueryInformatio.patch new file mode 100644 index 00000000..f1c047cb --- /dev/null +++ b/patches/11-QueryInformationToken/0001-ntdll-Stub-TokenAppContainerSid-in-NtQueryInformatio.patch @@ -0,0 +1,89 @@ +From eef0d4fa08355377548c101283b62998dc10884e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michael=20M=C3=BCller?= +Date: Sat, 31 May 2014 02:08:45 +0200 +Subject: ntdll: Stub TokenAppContainerSid in NtQueryInformationToken + +--- + dlls/ntdll/nt.c | 21 ++++++++++++++++++++- + include/winnt.h | 19 +++++++++++++++++++ + 2 files changed, 39 insertions(+), 1 deletion(-) + +diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c +index ce648de..b9d8a52 100644 +--- a/dlls/ntdll/nt.c ++++ b/dlls/ntdll/nt.c +@@ -279,7 +279,19 @@ NTSTATUS WINAPI NtQueryInformationToken( + sizeof(TOKEN_MANDATORY_LABEL) + sizeof(SID), /* TokenIntegrityLevel [sizeof(SID) includes one SubAuthority] */ + 0, /* TokenUIAccess */ + 0, /* TokenMandatoryPolicy */ +- 0 /* TokenLogonSid */ ++ 0, /* TokenLogonSid */ ++ 0, /* TokenIsAppContainer */ ++ 0, /* TokenCapabilities */ ++ sizeof(TOKEN_APPCONTAINER_INFORMATION) + sizeof(SID), /* TokenAppContainerSid */ ++ 0, /* TokenAppContainerNumber */ ++ 0, /* TokenUserClaimAttributes*/ ++ 0, /* TokenDeviceClaimAttributes */ ++ 0, /* TokenRestrictedUserClaimAttributes */ ++ 0, /* TokenRestrictedDeviceClaimAttributes */ ++ 0, /* TokenDeviceGroups */ ++ 0, /* TokenRestrictedDeviceGroups */ ++ 0, /* TokenSecurityAttributes */ ++ 0 /* TokenIsRestricted */ + }; + + ULONG len = 0; +@@ -521,6 +533,13 @@ NTSTATUS WINAPI NtQueryInformationToken( + memcpy(psid, &high_level, sizeof(SID)); + } + break; ++ case TokenAppContainerSid: ++ { ++ TOKEN_APPCONTAINER_INFORMATION *container = tokeninfo; ++ FIXME("QueryInformationToken( ..., TokenAppContainerSid, ...) semi-stub\n"); ++ container->TokenAppContainer = NULL; ++ } ++ break; + default: + { + ERR("Unhandled Token Information class %d!\n", tokeninfoclass); +diff --git a/include/winnt.h b/include/winnt.h +index f902ba2..7934022 100644 +--- a/include/winnt.h ++++ b/include/winnt.h +@@ -3685,6 +3685,18 @@ typedef enum _TOKEN_INFORMATION_CLASS { + TokenUIAccess, + TokenMandatoryPolicy, + TokenLogonSid, ++ TokenIsAppContainer, ++ TokenCapabilities, ++ TokenAppContainerSid, ++ TokenAppContainerNumber, ++ TokenUserClaimAttributes, ++ TokenDeviceClaimAttributes, ++ TokenRestrictedUserClaimAttributes, ++ TokenRestrictedDeviceClaimAttributes, ++ TokenDeviceGroups, ++ TokenRestrictedDeviceGroups, ++ TokenSecurityAttributes, ++ TokenIsRestricted, + MaxTokenInfoClass + } TOKEN_INFORMATION_CLASS; + +@@ -4411,6 +4423,13 @@ typedef struct _TOKEN_MANDATORY_LABEL { + } TOKEN_MANDATORY_LABEL, * PTOKEN_MANDATORY_LABEL; + + /* ++ * TOKEN_APPCONTAINER_INFORMATION ++ */ ++typedef struct _TOKEN_APPCONTAINER_INFORMATION { ++ PSID TokenAppContainer; ++} TOKEN_APPCONTAINER_INFORMATION, * PTOKEN_APPCONTAINER_INFORMATION; ++ ++/* + * ACLs of NT + */ + +-- +1.8.3.2 + diff --git a/patches/11-QueryInformationToken/c0ac8f22-1483-4e1f-8136-88e5fb99a41f.def b/patches/11-QueryInformationToken/c0ac8f22-1483-4e1f-8136-88e5fb99a41f.def new file mode 100644 index 00000000..87320983 --- /dev/null +++ b/patches/11-QueryInformationToken/c0ac8f22-1483-4e1f-8136-88e5fb99a41f.def @@ -0,0 +1,4 @@ +Revision: 1 +Author: Michael Müller +Title: Add stub for TokenAppContainerSid in NtQueryInformationToken. + diff --git a/patches/patch-list.patch b/patches/patch-list.patch index 8c192f30..d0194b51 100644 --- a/patches/patch-list.patch +++ b/patches/patch-list.patch @@ -37,7 +37,7 @@ diff --git a/libs/wine/config.c b/libs/wine/config.c index a273502..5fa0cd5 100644 --- a/libs/wine/config.c +++ b/libs/wine/config.c -@@ -478,6 +478,38 @@ const char *wine_get_version(void) +@@ -478,6 +478,40 @@ const char *wine_get_version(void) return PACKAGE_VERSION; } @@ -50,12 +50,14 @@ index a273502..5fa0cd5 100644 + { "92938b89-506b-430a-ba50-32de8b286e56:4", "Erich E. Hoover", "Store and return security attributes with extended file attributes." }, + { "5d6bb7b5-ec88-4ed3-907d-9ad2173a2f88:1", "Sebastian Lackner", "Enable/disable windows when they are (un)mapped by foreign applications." }, + { "94186fff-6dbf-44d0-8eb1-2463d1608a0f:1", "Sebastian Lackner", "Update gl_drawable for embedded windows." }, ++ { "1d0160c7-42a4-491c-9676-fa3b1859aaab:1", "Michael Müller", "Fix return value of WaitNamedPipe if pipe does not exist." }, + { "cbe240e8-2c58-430a-b61c-7fbb9d0e1e11:1", "Sebastian Lackner", "Change return value of stub SetNamedPipeHandleState to TRUE." }, + { "00273da7-72f8-4025-9e96-0c2bc95dacdb:2", "Maarten Lankhorst", "Winepulse patches extracted from https://launchpad.net/~mlankhorst/+archive/ppa/+files/wine1.7_1.7.10-0ubuntu1~saucy1.debian.tar.gz." }, + { "fbea4ef6-85ac-4524-b32d-fc9882b73e5a:1", "Erich E. Hoover", "Implement GetVolumePathName." }, + { "4cd13e94-7f2d-11e3-b5eb-0090f5c75ad5:1", "Erich E. Hoover", "Support for junction points/reparse points." }, + { "5fb1f5c8-7f17-11e3-9b62-0090f5c75ad5:1", "Erich E. Hoover", "Implement TransmitFile." }, + { "3d7c4774-9e7f-11e3-9cfc-0090f5c75ad5:1", "Erich E. Hoover", "Implement missing fonts expected by Silverlight." }, ++ { "c0ac8f22-1483-4e1f-8136-88e5fb99a41f:1", "Michael Müller", "Add stub for TokenAppContainerSid in NtQueryInformationToken." }, + { "0b21d7ac-0387-4493-aa38-fbafe3e749f5:2", "Michael Müller", "Decrease minimum SetTimer interval to 5 ms." }, + { "2394843e-2bc4-4fa4-8368-1ef32093b89e:1", "Michael Müller", "Allow changing strict draw ordering through an exported function." }, + { "59bd38b7-bbdc-4cfd-9ccd-1c72c4ed84c0:1", "Sebastian Lackner", "Implement X11DRV_FLUSH_GDI_DISPLAY ExtEscape command." },