Compare commits

...

87 Commits

Author SHA1 Message Date
Sebastian Lackner
7397ac1394 Release 1.9.20. 2016-10-02 20:41:04 +02:00
Sebastian Lackner
6b626b3f42 Added patch to create HardwareId registry key for display devices. 2016-10-02 18:08:25 +02:00
Sebastian Lackner
ec7eae9400 Rebase against 8a92dd9a5720c4b6b334e4f13629c0b0f5a72e94. 2016-10-01 21:04:43 +02:00
Sebastian Lackner
1a199958e7 Rebase against af37b187ad86191110b80bef814d25ce3ac350db. 2016-09-28 18:04:14 +02:00
Sebastian Lackner
2bf9187a19 Added patch to improve palette support in windowscodecs.dll. 2016-09-28 17:55:15 +02:00
Sebastian Lackner
b3eb9ef535 Rebase against f669dc69cdcaf08aa197c98f68a1dfb4f8a265b1. 2016-09-28 03:28:26 +02:00
Sebastian Lackner
78c9cb74ff Rebase against c76c7d85d0be45edf72e63ae7eae51c018383070. 2016-09-27 18:14:12 +02:00
Sebastian Lackner
b52328c75a Rebase against 61e6e8baa01dd44fa46744a8bc2b226474ce487a. 2016-09-23 19:12:11 +02:00
Sebastian Lackner
00fbf6afc8 Rebase against 1513c706341a6c04ddfa8b1998a346d343fc4983.
[ntdll-RtlSetCurrentDirectory_U]
Removed patch to open current working directory with FILE_TRAVERSE access
(accepted upstream).

[server-Win32_Prefix]
Removed patch to allow to create win23 prefix when directory already exists
(accepted upstream).
2016-09-22 21:27:27 +02:00
Sebastian Lackner
1281216a26 Rebase against 6fd36314d051ceff8dbb0f2d442f57983e0bcd65.
[dsound-DSCAPS_CERTIFIED]
Removed patch to pretend that the dsound driver is certified (accepted upstream).

[hid-HidP_TranslateUsagesToI8042ScanCodes]
Removed patch to stub HidP_TranslateUsagesToI8042ScanCodes (accepted upstream).
2016-09-21 21:11:23 +02:00
Sebastian Lackner
dd166155b5 Added patch to fix initial texture upload for 1D/3D textures. 2016-09-21 01:23:13 +02:00
Sebastian Lackner
8112d76673 Rebase against e6e8ed47e6d6d245e4bbda13691eb714cf95a675. 2016-09-21 00:23:02 +02:00
Sebastian Lackner
ee44570fb0 Rebase against 5a9f7ef06df15e26acf46b0210dd7697356da7ac. 2016-09-20 21:33:38 +02:00
Sebastian Lackner
3b127e5f51 Release 1.9.19. 2016-09-19 01:30:09 +02:00
Sebastian Lackner
1e2b0d3e0c Added patch to implement support for SP_COPY_IN_USE_NEEDS_REBOOT in do_file_copyW. 2016-09-18 23:11:45 +02:00
Sebastian Lackner
a358f0984b Added patch to implement CIF reader and download functionality in inseng.dll. 2016-09-18 22:48:10 +02:00
Sebastian Lackner
c08a9ab0d6 Added patch to allow to create win23 prefix when directory already exists. 2016-09-18 20:39:19 +02:00
Sebastian Lackner
4483c9737e Added patch to open current working directory with FILE_TRAVERSE access. 2016-09-18 20:22:06 +02:00
Sebastian Lackner
522961364f Rebase against e2ebc0dc23f0fa04ea79cefc9e3d2faf189a6bf7.
[windowscodecs-32bppGrayFloat]
Partially removed patches to implement support for WICPixelFormat32bppGrayFloat
(accepted upstream).

[windowscodecs-copypixels_to_24bppRGB]
Removed patch to avoid extra conversion step BGR->RGB when converting 32bpp
BGRA to 24bpp RGB (accepted upstream).
2016-09-17 16:06:46 +02:00
Sebastian Lackner
f8b5d1530a Rebase against 1938d389b293930c5ac2f2970c6241e09517cf49.
[gdiplus-GdipCreateMetafileFromStream]
Removed remaining patches to implement GdipGetMetafileHeaderFrom* functions
(accepted upstream).
2016-09-16 07:58:16 +02:00
Sebastian Lackner
75760561c3 Rebase against 4931e6f92bc7e0c229a057ebf2e000f8f5aa1edd. 2016-09-15 06:22:42 +02:00
Sebastian Lackner
79af70fad1 Rebase against 4e9cc305bb1a758eb70419318c7c41c2918fc180. 2016-09-13 23:52:10 +02:00
Sebastian Lackner
3bb2024464 Rebase against c1bc25dd38dab0504bd9eb45641a830ff08488b3.
[gdiplus-GdipCreateMetafileFromStream]
Removed patches to implement GdipCreateMetafileFromStream and
GdipGetMetafileHeaderFromMetafile (accepted upstream).
2016-09-12 23:39:35 +02:00
Sebastian Lackner
2ad4a084dd Added patch to silence a noisy FIXME message in msvcrt.pf_printf. 2016-09-10 18:56:18 +02:00
Sebastian Lackner
4465c82831 Rebase against 4bfefc5c7132023ee40d70572b677ae0e441df38. 2016-09-10 08:27:16 +02:00
Sebastian Lackner
141b05e4ff Rebase against 01581bfc48161c3c55027334b1ecb9e909873a6b. 2016-09-09 22:59:00 +02:00
Sebastian Lackner
50a0e530a8 Rebase against 7c06f1c218a2ecb1f2dda2cfb97b3a2c5b7f01e8. 2016-09-09 19:48:49 +02:00
Sebastian Lackner
b3a71a8918 Rebase against f53c320f04114253955b509da294ef454864679d. 2016-09-07 17:58:48 +02:00
Sebastian Lackner
82a0709ef2 Release 1.9.18. 2016-09-05 16:09:42 +02:00
Sebastian Lackner
bf90df4eed Added hack for WINED3DFMT_R24_UNORM_X8_TYPELESS format. 2016-09-04 21:23:54 +02:00
Sebastian Lackner
e2e200361f Added patch to implement IWICPalette::InitializeFromBitmap and corresponding gdiplus functions. 2016-09-04 21:12:21 +02:00
Sebastian Lackner
ad962f7d64 Rebase against 7baaab5b53011c3a593e1ff32538c9ca706db212.
FIXME: Use CS resource map/unmap mechanism instead of separate opcodes.
2016-09-03 21:19:17 +02:00
Sebastian Lackner
d28e0d12bb Rebase against 225c43b8124aaeb4c2e307379ab98036db1a38b3. 2016-09-01 19:55:33 +02:00
Sebastian Lackner
938ffad317 Rebase against 23a64ca074021bfda46f6287aaa529d6e8f66774. 2016-08-31 21:51:53 +02:00
Sebastian Lackner
6b3228a788 Added patch to avoid extra conversion step BGR->RGB when converting 32bpp BGRA to 24bpp RGB. 2016-08-31 17:54:00 +02:00
Michael MĂĽller
6b709dc505 Added patch for d3d11 1d textures. 2016-08-31 17:42:50 +02:00
Sebastian Lackner
8ca9f08b92 Rebase against 002af352fac43d170aad216bf15098b27555539a. 2016-08-30 20:44:42 +02:00
Sebastian Lackner
39c7e02819 Rebase against d3cb5c24a5ebbc7dcfb181a56f0f55cf3d1a1c30. 2016-08-29 18:29:37 +02:00
Sebastian Lackner
398d920e3a Added patch to implement semi-stub for d3d11_device_CheckFormatSupport. 2016-08-29 03:14:37 +02:00
Sebastian Lackner
5a40e8f8b3 Added patch to add WINED3DFMT_R32G32_{U,S}INT as render target format. 2016-08-29 03:06:03 +02:00
Sebastian Lackner
d4fa026231 Added patch to implement semi-stub for advapi32.GetExplicitEntriesFromAclW. 2016-08-29 03:05:30 +02:00
Sebastian Lackner
43a640f8fd Rebase against 30cdd1fb8cea410cb9e363b16278528669e2c19a. 2016-08-28 20:22:44 +02:00
Sebastian Lackner
deb73bfa7c Rebase against 839995d5e9afcbcdcd084eac3a8e6e48a2173eda. 2016-08-25 23:43:12 +02:00
Sebastian Lackner
f2fd04974f Rebase against a875e3c6ab075c0603e7bf1430abdba704640602. 2016-08-25 23:20:12 +02:00
Sebastian Lackner
9961dd76da Rebase against 94845c400e2d09c96854e756075a0004c17776bb. 2016-08-24 09:30:16 +02:00
Sebastian Lackner
d86ab36369 Rebase against 90173ce448e5afe55627c2cbece28fb4f6bae99d.
[ntdll-ThreadpoolCleanupGroup]
Removed patches to fix multiple bugs related to threadpool cleanup groups and
cancel callbacks (accepted upstream).
2016-08-24 09:29:31 +02:00
Sebastian Lackner
034992d90e Release 1.9.17. 2016-08-22 00:17:29 +02:00
Sebastian Lackner
5b67aa1fc3 Added patch to check input format in MPEG3_StreamOpen. 2016-08-21 03:40:47 +02:00
Sebastian Lackner
d3cebda659 Added patch to fill out DeviceInfoData in SetupDiGetDeviceInterfaceDetail even if interface buffer is too small. 2016-08-20 23:26:28 +02:00
Sebastian Lackner
f438f86e52 Added patches to fix multiple bugs related to threadpool cleanup groups and cancel callbacks. 2016-08-20 22:51:09 +02:00
Sebastian Lackner
17396cec6d kernel32-UmsStubs: Synchronize spec files. 2016-08-20 15:47:51 +02:00
Sebastian Lackner
c4d19a5e32 Rebase against a83d5d3b83042d2305de0595c0d03e4e7bf1e29e. 2016-08-20 14:40:39 +02:00
Sebastian Lackner
fbe5fa909a wined3d-CSMT_Main: Added patch to avoid calling SetEvent when worker thread is fast enough. 2016-08-19 17:14:36 +02:00
Sebastian Lackner
a8ed1e17c2 Rebase against 60f8b516e2a6233eaee8ae58cd2eccce998dd81f.
[ntdll-x86_64_Builtin_Frames]
Temporarily disable patchset to improve handling of builtin frames for x86_64
when switching stack. This needs additional work to be compatible with the
recent collided unwind upstream changes.
2016-08-19 17:12:13 +02:00
Sebastian Lackner
38d1d5a2fe Rebase against 51021faaef8312c35e9772873ad588c194c5c709. 2016-08-16 23:13:29 +02:00
Sebastian Lackner
4a42867417 Rebase against c90e46b66ded518dbfb88f1efdc366e7986defb4. 2016-08-15 20:39:38 +02:00
Sebastian Lackner
436e1adc84 Rebase against d6d0d96402b9c187877f11da173f8fbbf62ba072. 2016-08-13 05:24:18 +02:00
Sebastian Lackner
c46fab6261 Rebase against dca0e38d82c737cd8aeab63e08cf1990d05d9671.
FIXME: Merge buffer/texture preload commands.
2016-08-12 18:06:33 +02:00
Sebastian Lackner
e875860886 patchinstall.sh: Add support for eapply backend and mark epatch as deprecated (thanks NP-Hardass). 2016-08-11 06:07:13 +02:00
Sebastian Lackner
a6c6b83eb7 Rebase against 882980c17a9a033fa8e49a4c116af9583698d218. 2016-08-10 22:22:18 +02:00
Sebastian Lackner
b727968b45 Rebase against ba858c28fd489a812ea0f55a11680a8edaf99ce5. 2016-08-09 20:42:49 +02:00
Sebastian Lackner
929a758ef4 Rebase against 84b3218ed6ad5975f537481edf2f61fb26bedb8b. 2016-08-08 21:43:18 +02:00
Sebastian Lackner
1b0da6367b Release 1.9.16. 2016-08-06 23:43:07 +02:00
Sebastian Lackner
515f93534d wined3d-Silence_FIXMEs: Added patch to silence FIXME in shader_glsl_declare_generic_vertex_attribute. 2016-08-06 19:47:29 +02:00
Sebastian Lackner
d95ae10e5a Rebase against 3852d3357d087353d71d4d11359014a97dbf3e5a.
[d3dx9_36-D3DXDisassembleShader]
Removed patch to implement stub for d3dx9_36.D3DXFillCubeTextureTX (fixed upstream).
2016-08-06 05:03:26 +02:00
Sebastian Lackner
eaf5582379 wined3d-DXTn: Remove an invalid Fixes line. 2016-08-05 22:48:51 +02:00
Sebastian Lackner
61c40e8075 wined3d-CSMT_Main: Added patches to fix wrong return value and to send wined3d_texture_add_dirty_region through the command stream. 2016-08-05 22:47:08 +02:00
Sebastian Lackner
89e2d01a1d Rebase against 0b49495b8ed9e725b47b7ca791312a2a3c3e3c97. 2016-08-05 02:43:06 +02:00
Sebastian Lackner
43c1f6218c taskmgr-Memory_Usage: Update patch and return more precise freemem value if possible. 2016-08-04 20:45:59 +02:00
Sebastian Lackner
69b39e2f8a ntdll-Attach_Process_DLLs: Update patchset and fix a bug related to load ordering. 2016-08-04 08:53:05 +02:00
Sebastian Lackner
2260ec5633 Rebase against a65718a3e7b95443a82dafd5d2c9cded961404a6. 2016-08-04 03:33:52 +02:00
Sebastian Lackner
3aa3a625e3 Rebase against 9ef65cf3d6af2e488d7efcb94fe61aa7e8540351. 2016-08-03 03:13:11 +02:00
Sebastian Lackner
b5a323aaa3 Rebase against 7aadb08212a5269ebefcb100cf567f7cf7aa0a7c. 2016-08-02 23:48:54 +02:00
Sebastian Lackner
0b0ad0faa4 wined3d-CSMT_Main: Remove unused wined3d_cs_emit_query_poll declaration in header file. 2016-08-01 01:46:52 +02:00
Sebastian Lackner
a95641d039 d3dx9_36-D3DXStubs: Update spec files. 2016-07-31 03:45:07 +02:00
Sebastian Lackner
2c23a6155e d3dx9_36-D3DXDisassembleShader: Update spec file (thanks Alistair Leslie-Hughes). 2016-07-31 03:38:10 +02:00
Sebastian Lackner
3ddc7bcaff Fix compiler warnings in multiple patches. 2016-07-31 03:02:56 +02:00
Sebastian Lackner
9f334d5964 Added lots of patches to workaround GCC 6 compiler warnings. 2016-07-31 02:16:08 +02:00
Sebastian Lackner
d926a91bfa Rebase against 0f2a776a59006a15fb84a2a51237d3484f136966. 2016-07-31 01:20:28 +02:00
Sebastian Lackner
0fabea78c6 Rebase against 77fc4697dd7c2b81181c4549c22210bc16913736.
NtCurrentTeb()->Reserved5[0] is now used for a different purpose on x86_64 OSX.
2016-07-31 01:20:28 +02:00
Sebastian Lackner
50a53675fe Rebase against ba2e025b94fa3705d439803a545129c32e8818af. 2016-07-31 01:20:27 +02:00
Sebastian Lackner
ceb2471ad2 Rebase against 2337c50ed769f2078257283f82aa7e696b452324. 2016-07-31 01:20:27 +02:00
Sebastian Lackner
3d23048fe4 Rebase against d262a183116dedfbeedc2d1ec2ea597673bfcd86. 2016-07-31 01:20:27 +02:00
Sebastian Lackner
e1b287d31a Rebase against 52a3a3b20633bf3a08860d43c8a9130a693cbedb. 2016-07-31 01:20:27 +02:00
Sebastian Lackner
af8f18a1f6 Rebase against 63fcf7faee88aea9425f57de8516dea262f54531.
[ntdll-OSX_TEB_x86_64]
Removed patch to improve compatibility of 64-bit support for OS X (accepted
upstream).
2016-07-31 01:20:27 +02:00
Sebastian Lackner
002886bffa Rebase against b05704dbbd429a5325132c77a3e13fcb88b2995f. 2016-07-31 01:20:27 +02:00
Sebastian Lackner
104c5b24f1 Rebase against b54a8dda844a1a43d1dff22eff0ea206be5c630c.
[d3dx9_36-D3DXDisassembleShader]
Removed patch to implement d3dx9_36.D3DXCreateTextureShader with stub interface
(accepted upstream).

[ntdll-NtQuerySection]
Partially removed patches to implement NtQuerySection (fixed upstream).
2016-07-31 01:20:04 +02:00
312 changed files with 16523 additions and 8372 deletions

View File

@@ -66,7 +66,8 @@ Configuration:
Backends:
--backend=patch Use regular 'patch' utility to apply patches (default)
--backend=epatch Use 'epatch' to apply patches (Gentoo only)
--backend=eapply Use 'eapply' to apply patches (Gentoo only)
--backend=epatch Use 'epatch' to apply patches (Gentoo only, deprecated)
--backend=git-am Use 'git am' to apply patches
--backend=git-apply Use 'git apply' to apply patches
--backend=stg Import the patches using stacked git

View File

@@ -0,0 +1,25 @@
From 1d2744df97beb00c40ae4c9d307334f4fe0c253d Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 31 Jul 2016 00:01:52 +0200
Subject: include: Avoid shift overflow warning.
---
include/d3dtypes.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/d3dtypes.h b/include/d3dtypes.h
index 75aee55..8a884a8 100644
--- a/include/d3dtypes.h
+++ b/include/d3dtypes.h
@@ -53,7 +53,7 @@ typedef LONG D3DFIXED;
#define RGBA_GETRED(rgb) (((rgb) >> 16) & 0xff)
#define RGBA_GETGREEN(rgb) (((rgb) >> 8) & 0xff)
#define RGBA_GETBLUE(rgb) ((rgb) & 0xff)
-#define RGBA_MAKE(r, g, b, a) ((D3DCOLOR) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b)))
+#define RGBA_MAKE(r, g, b, a) ((D3DCOLOR) (((DWORD)(a) << 24) | ((r) << 16) | ((g) << 8) | (b)))
#define D3DRGB(r, g, b) \
(0xff000000 | ( ((LONG)((r) * 255)) << 16) | (((LONG)((g) * 255)) << 8) | (LONG)((b) * 255))
--
2.9.0

View File

@@ -0,0 +1,277 @@
From cb383abcb7d36d739092a93c1f276895622b6806 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 28 Aug 2016 21:56:41 +0200
Subject: advapi32: Implement GetExplicitEntriesFromAclW.
---
dlls/advapi32/security.c | 81 ++++++++++++++++++++++-
dlls/advapi32/tests/security.c | 142 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 221 insertions(+), 2 deletions(-)
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index 92a1789..c60aa4e 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -4202,8 +4202,85 @@ DWORD WINAPI GetExplicitEntriesFromAclA( PACL pacl, PULONG pcCountOfExplicitEntr
DWORD WINAPI GetExplicitEntriesFromAclW( PACL pacl, PULONG pcCountOfExplicitEntries,
PEXPLICIT_ACCESSW* pListOfExplicitEntries)
{
- FIXME("%p %p %p\n",pacl, pcCountOfExplicitEntries, pListOfExplicitEntries);
- return ERROR_CALL_NOT_IMPLEMENTED;
+ ACL_SIZE_INFORMATION sizeinfo;
+ EXPLICIT_ACCESSW* entries;
+ MAX_SID *sid_entries;
+ ACE_HEADER *ace;
+ NTSTATUS status;
+ int i;
+
+ FIXME("%p %p %p: semi-stub\n",pacl, pcCountOfExplicitEntries, pListOfExplicitEntries);
+
+ if (!pcCountOfExplicitEntries || !pListOfExplicitEntries)
+ return ERROR_INVALID_PARAMETER;
+
+ status = RtlQueryInformationAcl(pacl, &sizeinfo, sizeof(sizeinfo), AclSizeInformation);
+ if (status) return RtlNtStatusToDosError(status);
+
+ if (!sizeinfo.AceCount)
+ {
+ *pcCountOfExplicitEntries = 0;
+ *pListOfExplicitEntries = NULL;
+ return ERROR_SUCCESS;
+ }
+
+ entries = LocalAlloc(LMEM_FIXED | LMEM_ZEROINIT, (sizeof(EXPLICIT_ACCESSW) + sizeof(MAX_SID)) * sizeinfo.AceCount);
+ if (!entries) return ERROR_OUTOFMEMORY;
+ sid_entries = (MAX_SID*)((char*)entries + sizeof(EXPLICIT_ACCESSW) * sizeinfo.AceCount);
+
+ for (i = 0; i < sizeinfo.AceCount; i++)
+ {
+ status = RtlGetAce(pacl, i, (void**)&ace);
+ if (status) goto error;
+
+ switch (ace->AceType)
+ {
+ case ACCESS_ALLOWED_ACE_TYPE:
+ {
+ ACCESS_ALLOWED_ACE *allow = (ACCESS_ALLOWED_ACE *)ace;
+ entries[i].grfAccessMode = GRANT_ACCESS;
+ entries[i].grfInheritance = ace->AceFlags;
+ entries[i].grfAccessPermissions = allow->Mask;
+
+ CopySid(sizeof(MAX_SID), (PSID)&sid_entries[i], (PSID)&allow->SidStart);
+ entries[i].Trustee.pMultipleTrustee = NULL;
+ entries[i].Trustee.MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
+ entries[i].Trustee.TrusteeForm = TRUSTEE_IS_SID;
+ entries[i].Trustee.TrusteeType = TRUSTEE_IS_UNKNOWN;
+ entries[i].Trustee.ptstrName = (WCHAR *)&sid_entries[i];
+ break;
+ }
+
+ case ACCESS_DENIED_ACE_TYPE:
+ {
+ ACCESS_DENIED_ACE *deny = (ACCESS_DENIED_ACE *)ace;
+ entries[i].grfAccessMode = DENY_ACCESS;
+ entries[i].grfInheritance = ace->AceFlags;
+ entries[i].grfAccessPermissions = deny->Mask;
+
+ CopySid(sizeof(MAX_SID), (PSID)&sid_entries[i], (PSID)&deny->SidStart);
+ entries[i].Trustee.pMultipleTrustee = NULL;
+ entries[i].Trustee.MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
+ entries[i].Trustee.TrusteeForm = TRUSTEE_IS_SID;
+ entries[i].Trustee.TrusteeType = TRUSTEE_IS_UNKNOWN;
+ entries[i].Trustee.ptstrName = (WCHAR *)&sid_entries[i];
+ break;
+ }
+
+ default:
+ FIXME("Unhandled ace type %d\n", ace->AceType);
+ entries[i].grfAccessMode = NOT_USED_ACCESS;
+ continue;
+ }
+ }
+
+ *pcCountOfExplicitEntries = sizeinfo.AceCount;
+ *pListOfExplicitEntries = entries;
+ return ERROR_SUCCESS;
+
+error:
+ LocalFree(entries);
+ return RtlNtStatusToDosError(status);
}
/******************************************************************************
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index cf104ab..2bcb108 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -133,6 +133,7 @@ static BOOL (WINAPI *pGetWindowsAccountDomainSid)(PSID,PSID,DWORD*);
static void (WINAPI *pRtlInitAnsiString)(PANSI_STRING,PCSZ);
static NTSTATUS (WINAPI *pRtlFreeUnicodeString)(PUNICODE_STRING);
static PSID_IDENTIFIER_AUTHORITY (WINAPI *pGetSidIdentifierAuthority)(PSID);
+static DWORD (WINAPI *pGetExplicitEntriesFromAclW)(PACL,PULONG,PEXPLICIT_ACCESSW*);
static HMODULE hmod;
static int myARGC;
@@ -227,6 +228,7 @@ static void init(void)
pGetAce = (void *)GetProcAddress(hmod, "GetAce");
pGetWindowsAccountDomainSid = (void *)GetProcAddress(hmod, "GetWindowsAccountDomainSid");
pGetSidIdentifierAuthority = (void *)GetProcAddress(hmod, "GetSidIdentifierAuthority");
+ pGetExplicitEntriesFromAclW = (void *)GetProcAddress(hmod, "GetExplicitEntriesFromAclW");
myARGC = winetest_get_mainargs( &myARGV );
}
@@ -6378,6 +6380,145 @@ static void test_pseudo_tokens(void)
"Expected ERROR_NO_TOKEN, got %u\n", GetLastError());
}
+static void test_GetExplicitEntriesFromAclW(void)
+{
+ static const WCHAR wszCurrentUser[] = { 'C','U','R','R','E','N','T','_','U','S','E','R','\0'};
+ SID_IDENTIFIER_AUTHORITY SIDAuthWorld = { SECURITY_WORLD_SID_AUTHORITY };
+ SID_IDENTIFIER_AUTHORITY SIDAuthNT = { SECURITY_NT_AUTHORITY };
+ PSID everyone_sid = NULL, users_sid = NULL;
+ EXPLICIT_ACCESSW access;
+ EXPLICIT_ACCESSW *access2;
+ PACL new_acl, old_acl = NULL;
+ ULONG count;
+ DWORD res;
+
+ if (!pGetExplicitEntriesFromAclW)
+ {
+ win_skip("GetExplicitEntriesFromAclW is not available\n");
+ return;
+ }
+
+ if (!pSetEntriesInAclW)
+ {
+ win_skip("SetEntriesInAclW is not available\n");
+ return;
+ }
+
+ old_acl = HeapAlloc(GetProcessHeap(), 0, 256);
+ res = InitializeAcl(old_acl, 256, ACL_REVISION);
+ if(!res && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
+ {
+ win_skip("ACLs not implemented - skipping tests\n");
+ HeapFree(GetProcessHeap(), 0, old_acl);
+ return;
+ }
+ ok(res, "InitializeAcl failed with error %d\n", GetLastError());
+
+ res = AllocateAndInitializeSid(&SIDAuthWorld, 1, SECURITY_WORLD_RID, 0, 0, 0, 0, 0, 0, 0, &everyone_sid);
+ ok(res, "AllocateAndInitializeSid failed with error %d\n", GetLastError());
+
+ res = AllocateAndInitializeSid(&SIDAuthNT, 2, SECURITY_BUILTIN_DOMAIN_RID,
+ DOMAIN_ALIAS_RID_USERS, 0, 0, 0, 0, 0, 0, &users_sid);
+ ok(res, "AllocateAndInitializeSid failed with error %d\n", GetLastError());
+
+ res = AddAccessAllowedAce(old_acl, ACL_REVISION, KEY_READ, users_sid);
+ ok(res, "AddAccessAllowedAce failed with error %d\n", GetLastError());
+
+ access2 = NULL;
+ res = pGetExplicitEntriesFromAclW(old_acl, &count, &access2);
+ ok(res == ERROR_SUCCESS, "GetExplicitEntriesFromAclW failed with error %d\n", GetLastError());
+ ok(count == 1, "Expected count == 1, got %d\n", count);
+ ok(access2[0].grfAccessMode == GRANT_ACCESS, "Expected GRANT_ACCESS, got %d\n", access2[0].grfAccessMode);
+ ok(access2[0].grfAccessPermissions == KEY_READ, "Expected KEY_READ, got %d\n", access2[0].grfAccessPermissions);
+ ok(access2[0].Trustee.TrusteeForm == TRUSTEE_IS_SID, "Expected SID trustee, got %d\n", access2[0].Trustee.TrusteeForm);
+ ok(access2[0].grfInheritance == NO_INHERITANCE, "Expected NO_INHERITANCE, got %x\n", access2[0].grfInheritance);
+ ok(EqualSid(access2[0].Trustee.ptstrName, users_sid), "Expected equal SIDs\n");
+ LocalFree(access2);
+
+ access.Trustee.MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
+ access.Trustee.pMultipleTrustee = NULL;
+
+ access.grfAccessPermissions = KEY_WRITE;
+ access.grfAccessMode = GRANT_ACCESS;
+ access.grfInheritance = NO_INHERITANCE;
+ access.Trustee.TrusteeType = TRUSTEE_IS_WELL_KNOWN_GROUP;
+ access.Trustee.TrusteeForm = TRUSTEE_IS_SID;
+ access.Trustee.ptstrName = everyone_sid;
+ res = pSetEntriesInAclW(1, &access, old_acl, &new_acl);
+ ok(res == ERROR_SUCCESS, "SetEntriesInAclW failed: %u\n", res);
+ ok(new_acl != NULL, "returned acl was NULL\n");
+
+ access2 = NULL;
+ res = pGetExplicitEntriesFromAclW(new_acl, &count, &access2);
+ ok(res == ERROR_SUCCESS, "GetExplicitEntriesFromAclW failed with error %d\n", GetLastError());
+ ok(count == 2, "Expected count == 2, got %d\n", count);
+ ok(access2[0].grfAccessMode == GRANT_ACCESS, "Expected GRANT_ACCESS, got %d\n", access2[0].grfAccessMode);
+ ok(access2[0].grfAccessPermissions == KEY_WRITE, "Expected KEY_WRITE, got %d\n", access2[0].grfAccessPermissions);
+ ok(access2[0].Trustee.TrusteeType == TRUSTEE_IS_UNKNOWN,
+ "Expected TRUSTEE_IS_UNKNOWN trustee type, got %d\n", access2[0].Trustee.TrusteeType);
+ ok(access2[0].Trustee.TrusteeForm == TRUSTEE_IS_SID, "Expected SID trustee, got %d\n", access2[0].Trustee.TrusteeForm);
+ ok(access2[0].grfInheritance == NO_INHERITANCE, "Expected NO_INHERITANCE, got %x\n", access2[0].grfInheritance);
+ ok(EqualSid(access2[0].Trustee.ptstrName, everyone_sid), "Expected equal SIDs\n");
+ LocalFree(access2);
+ LocalFree(new_acl);
+
+ access.Trustee.TrusteeType = TRUSTEE_IS_UNKNOWN;
+ res = pSetEntriesInAclW(1, &access, old_acl, &new_acl);
+ ok(res == ERROR_SUCCESS, "SetEntriesInAclW failed: %u\n", res);
+ ok(new_acl != NULL, "returned acl was NULL\n");
+
+ access2 = NULL;
+ res = pGetExplicitEntriesFromAclW(new_acl, &count, &access2);
+ ok(res == ERROR_SUCCESS, "GetExplicitEntriesFromAclW failed with error %d\n", GetLastError());
+ ok(count == 2, "Expected count == 2, got %d\n", count);
+ ok(access2[0].grfAccessMode == GRANT_ACCESS, "Expected GRANT_ACCESS, got %d\n", access2[0].grfAccessMode);
+ ok(access2[0].grfAccessPermissions == KEY_WRITE, "Expected KEY_WRITE, got %d\n", access2[0].grfAccessPermissions);
+ ok(access2[0].Trustee.TrusteeType == TRUSTEE_IS_UNKNOWN,
+ "Expected TRUSTEE_IS_UNKNOWN trustee type, got %d\n", access2[0].Trustee.TrusteeType);
+ ok(access2[0].Trustee.TrusteeForm == TRUSTEE_IS_SID, "Expected SID trustee, got %d\n", access2[0].Trustee.TrusteeForm);
+ ok(access2[0].grfInheritance == NO_INHERITANCE, "Expected NO_INHERITANCE, got %x\n", access2[0].grfInheritance);
+ ok(EqualSid(access2[0].Trustee.ptstrName, everyone_sid), "Expected equal SIDs\n");
+ LocalFree(access2);
+ LocalFree(new_acl);
+
+ access.Trustee.TrusteeForm = TRUSTEE_IS_NAME;
+ access.Trustee.ptstrName = (LPWSTR)wszCurrentUser;
+ res = pSetEntriesInAclW(1, &access, old_acl, &new_acl);
+ ok(res == ERROR_SUCCESS, "SetEntriesInAclW failed: %u\n", res);
+ ok(new_acl != NULL, "returned acl was NULL\n");
+
+ access2 = NULL;
+ res = pGetExplicitEntriesFromAclW(new_acl, &count, &access2);
+ ok(res == ERROR_SUCCESS, "GetExplicitEntriesFromAclW failed with error %d\n", GetLastError());
+ ok(count == 2, "Expected count == 2, got %d\n", count);
+ ok(access2[0].grfAccessMode == GRANT_ACCESS, "Expected GRANT_ACCESS, got %d\n", access2[0].grfAccessMode);
+ ok(access2[0].grfAccessPermissions == KEY_WRITE, "Expected KEY_WRITE, got %d\n", access2[0].grfAccessPermissions);
+ ok(access2[0].Trustee.TrusteeType == TRUSTEE_IS_UNKNOWN,
+ "Expected TRUSTEE_IS_UNKNOWN trustee type, got %d\n", access2[0].Trustee.TrusteeType);
+ ok(access2[0].Trustee.TrusteeForm == TRUSTEE_IS_SID, "Expected SID trustee, got %d\n", access2[0].Trustee.TrusteeForm);
+ ok(access2[0].grfInheritance == NO_INHERITANCE, "Expected NO_INHERITANCE, got %x\n", access2[0].grfInheritance);
+ LocalFree(access2);
+ LocalFree(new_acl);
+
+ access.grfAccessMode = REVOKE_ACCESS;
+ access.Trustee.TrusteeForm = TRUSTEE_IS_SID;
+ access.Trustee.ptstrName = users_sid;
+ res = pSetEntriesInAclW(1, &access, old_acl, &new_acl);
+ ok(res == ERROR_SUCCESS, "SetEntriesInAclW failed: %u\n", res);
+ ok(new_acl != NULL, "returned acl was NULL\n");
+
+ access2 = (void *)0xdeadbeef;
+ res = pGetExplicitEntriesFromAclW(new_acl, &count, &access2);
+ ok(res == ERROR_SUCCESS, "GetExplicitEntriesFromAclW failed with error %d\n", GetLastError());
+ ok(count == 0, "Expected count == 0, got %d\n", count);
+ ok(access2 == NULL, "access2 was not NULL\n");
+ LocalFree(new_acl);
+
+ FreeSid(users_sid);
+ FreeSid(everyone_sid);
+ HeapFree(GetProcessHeap(), 0, old_acl);
+}
+
START_TEST(security)
{
init();
@@ -6424,4 +6565,5 @@ START_TEST(security)
test_system_security_access();
test_GetSidIdentifierAuthority();
test_pseudo_tokens();
+ test_GetExplicitEntriesFromAclW();
}
--
2.9.0

View File

@@ -0,0 +1 @@
Fixes: Implement semi-stub for advapi32.GetExplicitEntriesFromAclW

View File

@@ -1,4 +1,4 @@
From cee15830660362c97d886ab9cc4e9a535b65491a Mon Sep 17 00:00:00 2001
From 8467721c604c1ed81f31b6675b143e98321b368b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 15 Jan 2016 13:01:15 +0100
Subject: kernelbase: Add dll and add stub for QuirkIsEnabled.
@@ -22,7 +22,7 @@ index b9caed0..2beb34b 100644
+C_SRCS = \
+ misc.c
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
index 53ed586..8fdb80d 100644
index f104030..8e62b4a 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -1,3 +1,6 @@
@@ -224,7 +224,7 @@ index 53ed586..8fdb80d 100644
+@ stub CreateProcessInternalW
+@ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) kernel32.CreateProcessW
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr) kernel32.CreateRemoteThread
@ stub CreateRemoteThreadEx
@ stdcall CreateRemoteThreadEx(long ptr long ptr long long ptr ptr) kernel32.CreateRemoteThreadEx
@ stdcall CreateRestrictedToken(long long long ptr long ptr long ptr ptr) advapi32.CreateRestrictedToken
@ stdcall CreateSemaphoreExW(ptr long long wstr long long) kernel32.CreateSemaphoreExW
+@ stdcall CreateSemaphoreW(ptr long long wstr) kernel32.CreateSemaphoreW
@@ -250,7 +250,7 @@ index 53ed586..8fdb80d 100644
@ stdcall DebugBreak() kernel32.DebugBreak
@ stdcall DecodePointer(ptr) kernel32.DecodePointer
+@ stub DecodeRemotePointer
@ stub DecodeSystemPointer
@ stdcall DecodeSystemPointer(ptr) kernel32.DecodeSystemPointer
@ stdcall DefineDosDeviceW(long wstr wstr) kernel32.DefineDosDeviceW
+@ stdcall DelayLoadFailureHook(str str) kernel32.DelayLoadFailureHook
+@ stub DelayLoadFailureHookLookup
@@ -260,7 +260,7 @@ index 53ed586..8fdb80d 100644
+@ stdcall DeleteFiber(ptr) kernel32.DeleteFiber
@ stdcall DeleteFileA(str) kernel32.DeleteFileA
@ stdcall DeleteFileW(wstr) kernel32.DeleteFileW
@ stub DeleteProcThreadAttributeList
@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
+@ stub DeleteStateAtomValue
+@ stub DeleteStateContainer
+@ stub DeleteStateContainerValue
@@ -294,7 +294,7 @@ index 53ed586..8fdb80d 100644
+@ stub EmptyWorkingSet
@ stdcall EncodePointer(ptr) kernel32.EncodePointer
+@ stub EncodeRemotePointer
@ stub EncodeSystemPointer
@ stdcall EncodeSystemPointer(ptr) kernel32.EncodeSystemPointer
+@ stub EnterCriticalPolicySectionInternal
@ stdcall EnterCriticalSection(ptr) kernel32.EnterCriticalSection
+@ stub EnterSynchronizationBarrier
@@ -533,7 +533,7 @@ index 53ed586..8fdb80d 100644
+@ stub GetHivePath
+@ stub GetIntegratedDisplaySize
@ stdcall GetKernelObjectSecurity(long long ptr long ptr) advapi32.GetKernelObjectSecurity
+@ stub GetLargePageMinimum
+@ stdcall GetLargePageMinimum() kernel32.GetLargePageMinimum
+@ stdcall GetLargestConsoleWindowSize(long) kernel32.GetLargestConsoleWindowSize
@ stdcall GetLastError() kernel32.GetLastError
@ stdcall GetLengthSid(ptr) advapi32.GetLengthSid
@@ -567,7 +567,7 @@ index 53ed586..8fdb80d 100644
+@ stub GetNextFgPolicyRefreshInfoInternal
+@ stdcall GetNumaHighestNodeNumber(ptr) kernel32.GetNumaHighestNodeNumber
+@ stub GetNumaNodeProcessorMaskEx
@ stub GetNumberFormatEx
@ stdcall GetNumberFormatEx(wstr long wstr ptr ptr long) kernel32.GetNumberFormatEx
@ stdcall GetNumberFormatW(long long wstr ptr ptr long) kernel32.GetNumberFormatW
+@ stdcall GetNumberOfConsoleInputEvents(long ptr) kernel32.GetNumberOfConsoleInputEvents
@ stdcall GetOEMCP() kernel32.GetOEMCP
@@ -782,7 +782,7 @@ index 53ed586..8fdb80d 100644
@ stdcall InitializeCriticalSection(ptr) kernel32.InitializeCriticalSection
@ stdcall InitializeCriticalSectionAndSpinCount(ptr long) kernel32.InitializeCriticalSectionAndSpinCount
@ stdcall InitializeCriticalSectionEx(ptr long long) kernel32.InitializeCriticalSectionEx
@ stub InitializeProcThreadAttributeList
@ stdcall InitializeProcThreadAttributeList(ptr long long ptr) kernel32.InitializeProcThreadAttributeList
+@ stub InitializeProcessForWsWatch
@ stdcall InitializeSListHead(ptr) kernel32.InitializeSListHead
@ stdcall InitializeSRWLock(ptr) kernel32.InitializeSRWLock
@@ -1379,7 +1379,7 @@ index 53ed586..8fdb80d 100644
@ stdcall SetCriticalSectionSpinCount(ptr long) kernel32.SetCriticalSectionSpinCount
@ stdcall SetCurrentDirectoryA(str) kernel32.SetCurrentDirectoryA
@ stdcall SetCurrentDirectoryW(wstr) kernel32.SetCurrentDirectoryW
@ stub SetDefaultDllDirectories
@ stdcall SetDefaultDllDirectories(long) kernel32.SetDefaultDllDirectories
+@ stub SetDynamicTimeZoneInformation
@ stdcall SetEndOfFile(long) kernel32.SetEndOfFile
@ stub SetEnvironmentStringsW
@@ -1577,7 +1577,7 @@ index 53ed586..8fdb80d 100644
+@ stub UnsubscribeStateChangeNotification
+@ stub UpdatePackageStatus
+@ stub UpdatePackageStatusForUser
@ stub UpdateProcThreadAttribute
@ stdcall UpdateProcThreadAttribute(ptr long long ptr long ptr ptr) kernel32.UpdateProcThreadAttribute
+@ stdcall UrlApplySchemeA(str ptr ptr long) shlwapi.UrlApplySchemeA
+@ stdcall UrlApplySchemeW(wstr ptr ptr long) shlwapi.UrlApplySchemeW
+@ stdcall UrlCanonicalizeA(str ptr ptr long) shlwapi.UrlCanonicalizeA
@@ -1770,17 +1770,17 @@ index 6b6ead2..7c2a9d1 100644
422 stdcall -noname SHGlobalCounterCreateNamedA(str long)
423 stdcall -noname SHGlobalCounterCreateNamedW(wstr long)
diff --git a/tools/make_specfiles b/tools/make_specfiles
index 774687e..7c097c4 100755
index f3b5c5e..8a7e514 100755
--- a/tools/make_specfiles
+++ b/tools/make_specfiles
@@ -232,6 +232,7 @@ my @dll_groups =
@@ -230,6 +230,7 @@ my @dll_groups =
[
"kernel32",
"advapi32",
+ "shlwapi",
"user32",
"kernelbase",
],
"api-ms-win-core-bem-l1-1-0",
--
2.7.1
2.9.0

View File

@@ -1,4 +1,4 @@
From 2f51e46724cd93eedfa9024dc3f88bfdd2eb3172 Mon Sep 17 00:00:00 2001
From 88298227180510b5eee8b129ae964f14bf565d64 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 15 Jan 2016 13:07:09 +0100
Subject: api-ms-win-core-quirks-l1-1-0: Add dll.
@@ -13,17 +13,17 @@ Subject: api-ms-win-core-quirks-l1-1-0: Add dll.
create mode 100644 dlls/api-ms-win-core-quirks-l1-1-0/api-ms-win-core-quirks-l1-1-0.spec
diff --git a/configure.ac b/configure.ac
index 7374b74..1cf8036 100644
index e97cd17..6d51b3f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2729,6 +2729,7 @@ WINE_CONFIG_DLL(api-ms-win-core-processthreads-l1-1-1)
@@ -2717,6 +2717,7 @@ WINE_CONFIG_DLL(api-ms-win-core-processthreads-l1-1-1)
WINE_CONFIG_DLL(api-ms-win-core-processthreads-l1-1-2)
WINE_CONFIG_DLL(api-ms-win-core-profile-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-core-psapi-l1-1-0)
+WINE_CONFIG_DLL(api-ms-win-core-quirks-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-core-realtime-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-core-registry-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-core-rtlsupport-l1-1-0)
WINE_CONFIG_DLL(api-ms-win-core-rtlsupport-l1-2-0)
WINE_CONFIG_DLL(api-ms-win-core-registryuserspecific-l1-1-0)
diff --git a/dlls/api-ms-win-core-quirks-l1-1-0/Makefile.in b/dlls/api-ms-win-core-quirks-l1-1-0/Makefile.in
new file mode 100644
index 0000000..9486e8b
@@ -46,11 +46,11 @@ index 0000000..54ce373
+@ stub QuirkIsEnabledForPackage2
+@ stub QuirkIsEnabledForProcess
diff --git a/tools/make_specfiles b/tools/make_specfiles
index 572c0b8..e62c2cd 100755
index 8a7e514..3316f76 100755
--- a/tools/make_specfiles
+++ b/tools/make_specfiles
@@ -225,6 +225,10 @@ my @dll_groups =
"kernelbase",
@@ -236,6 +236,10 @@ my @dll_groups =
"api-ms-win-core-bem-l1-1-0",
],
[
+ "kernelbase",
@@ -61,5 +61,5 @@ index 572c0b8..e62c2cd 100755
"api-ms-win-downlevel-ole32-l1-1-0",
"api-ms-win-core-com-l1-1-0",
--
2.6.4
2.9.0

Some files were not shown because too many files have changed in this diff Show More