Compare commits

...

147 Commits

Author SHA1 Message Date
Sebastian Lackner
7881913b09 Release 2.2. 2017-02-20 21:43:50 +01:00
Sebastian Lackner
88a1a26f34 Added patch to fix compilation of winemp3.acm on Ubuntu Precise. 2017-02-20 19:06:50 +01:00
Sebastian Lackner
53aeae58ad Added patch to improve performance of LdrGetDllHandle when DLL is not loaded. 2017-02-20 15:56:33 +01:00
Sebastian Lackner
33efbf2440 Added patch to implement various missing columns in Win32_VideoController wbemprox class. 2017-02-20 15:37:09 +01:00
Sebastian Lackner
2a755a9b6f Added patch to use separate wineserver call for kernel32.K32GetPerformanceInfo. 2017-02-20 15:30:14 +01:00
Sebastian Lackner
60e835b183 wined3d-CSMT_Main: Use DISCARD when uploading full buffer. 2017-02-20 02:02:26 +01:00
Sebastian Lackner
c32efc1a79 wined3d-CSMT_Main: Improve performance of update_sub_resource by copying data. 2017-02-20 01:11:27 +01:00
Sebastian Lackner
1119b4401a wined3d-CSMT_Main: Some fixes to ensure wined3d-csmt also works with CSMT disabled. 2017-02-19 22:35:46 +01:00
Sebastian Lackner
c55ebfa2a4 wined3d-CSMT_Main: Initialize full state. 2017-02-19 18:17:33 +01:00
Sebastian Lackner
884a25c8bf wined3d-CSMT_Main: Rebase to upstream changes. 2017-02-19 08:33:33 +01:00
Sebastian Lackner
81e2fbadc8 Added patch to avoid some test failures in d3d11 / d3d10core tests. 2017-02-18 21:52:53 +01:00
Sebastian Lackner
d9d5df9f73 Rebase against 9eb56e25e37b4adec0d72875455ffb787238672f. 2017-02-18 02:37:25 +01:00
Sebastian Lackner
9c5d1ebec9 Rebase against a2f2de1e960d37840bb0df541e31d64941e65197. 2017-02-17 22:15:05 +01:00
Sebastian Lackner
6057508b9b Rebase against d00f7315e0cec0c2fe34ba5ab2b55cf5718860dd. 2017-02-17 01:48:52 +01:00
Sebastian Lackner
1ff77100b8 Rebase against 8af23cb93e4e1cd3686984399cb50d755f5171e3. 2017-02-15 03:40:50 +01:00
Sebastian Lackner
60d570e5f1 Rebase against e804e9a5bc9fde9ad8b84dfd121d44afbe177752. 2017-02-14 17:01:29 +01:00
Sebastian Lackner
76007a01a2 wined3d-DXTn: Remove reference to fixed bug. 2017-02-12 22:52:20 +01:00
Sebastian Lackner
d924318742 wined3d-CSMT_Main: Initialize critical sections with spincount. 2017-02-12 15:44:06 +01:00
Sebastian Lackner
1cc5d04346 Added patch to create buffers on default pool in wined3d_buffer_create. 2017-02-12 05:21:10 +01:00
Sebastian Lackner
ecf0d1c5c2 wined3d-CSMT_Main: Use priority queue for update_sub_resource. 2017-02-12 05:17:53 +01:00
Sebastian Lackner
d834b49a37 Added patch to implement support for PSPCB_ADDREF/PSPCB_RELEASE callback notifications. 2017-02-11 06:23:14 +01:00
Sebastian Lackner
230c30c8e3 Rebase against 9c72376c8cc03a4ea86dddaa6d18a93a1a33fc73. 2017-02-11 05:57:20 +01:00
Sebastian Lackner
89830856c3 ntdll-NtQueryVirtualMemory: Fix buffer size in tests (thanks Mark Jansen). 2017-02-11 05:57:19 +01:00
Sebastian Lackner
5f82b6610f Remove various disabled patchsets. 2017-02-11 05:57:19 +01:00
Sebastian Lackner
bdc0bd9ac4 wined3d-CSMT_Main: Update patchset. 2017-02-11 05:57:19 +01:00
Sebastian Lackner
2b415aff4f Rebase against 06c5a9ab55751b1c66ea0847aea4d4a45d8d343c. 2017-02-11 05:57:19 +01:00
Sebastian Lackner
253835e7c3 Rebase against 6bb8ca1e25a9cfc66f396b2ae6bc423a8057929c. 2017-02-11 05:57:00 +01:00
Sebastian Lackner
29d851bf3a Release 2.1. 2017-02-09 05:39:42 +01:00
Sebastian Lackner
481488be9f Added patch to revert changes to wined3d_buffer_upload_data. 2017-02-08 19:56:48 +01:00
Sebastian Lackner
74528271f3 wined3d-CSMT_Main: Reenable patchset. 2017-02-08 17:36:36 +01:00
Sebastian Lackner
06886567bc Added patch to implement MemorySectionName class in NtQueryVirtualMemory. 2017-02-07 11:54:25 +01:00
Sebastian Lackner
a12dca03ce Added patch to implement some processor group functions and SetThreadIdealProcessorEx. 2017-02-05 22:38:32 +01:00
Sebastian Lackner
f6d52a6a19 kernel32-SetFileCompletionNotificationModes: Update patchset. 2017-02-05 16:14:08 +01:00
Sebastian Lackner
6ab46f2760 Added patch to implement stub for advapi32.LookupSecurityDescriptorPartsA/W. 2017-02-05 15:38:03 +01:00
Sebastian Lackner
cc8133fd8c Added patch to implement ProcessPriorityClass in NtQueryInformationProcess. 2017-02-05 15:38:03 +01:00
Sebastian Lackner
9392a75d90 Added patch with stub for kernel32.GetPackageFullName. 2017-02-05 15:38:03 +01:00
Sebastian Lackner
91eac1310f Added patch to implement ntdll.LdrEnumerateLoadedModules. 2017-02-05 15:38:03 +01:00
Sebastian Lackner
0fb4e4b319 api-ms-win-Stub_DLLs: Update specfile. 2017-02-05 15:38:03 +01:00
Sebastian Lackner
dbbf832f67 Added patch to implement stub for wevtapi.EvtNext. 2017-02-05 15:38:03 +01:00
Sebastian Lackner
e6ff2b49ac Added patch to set focus to dialog itself when it has no controls. 2017-02-05 07:20:17 +01:00
Sebastian Lackner
e4754f827a Rebase against e08ed6cac218fc09044d06d3cbe2a54f7ec898cf. 2017-02-04 07:47:58 +01:00
Sebastian Lackner
e374d7a750 windowscodecs-32bppPRGBA: Update patchset. 2017-02-02 22:48:15 +01:00
Sebastian Lackner
2e509b911f Rebase against 2a28e4d843ec5302f53a3168061fdf2ca30eb076. 2017-02-02 00:06:41 +01:00
Sebastian Lackner
c8b29193db server-PeekMessage: Update patchset. 2017-02-01 23:43:28 +01:00
Sebastian Lackner
52f7df8325 Added patch to handle begin == NULL in _vcomp_for_static_init. 2017-02-01 14:58:18 +01:00
Sebastian Lackner
25019ba42d Rebase against 36bb9d905ae10713bcd197958fb71aa86930a505. 2017-02-01 14:56:51 +01:00
Sebastian Lackner
72479040c5 Rebase against 2dd0fb880c005cd5660928d1646a117407cec238. 2017-01-31 11:19:50 +01:00
Sebastian Lackner
8f474115cd bcrypt-Improvements: Fix compilation on OSX when both gnutls and commoncrypto is available. 2017-01-29 12:46:25 +01:00
Sebastian Lackner
4a6f3210c9 Rebase against 152b24015308286441399f9fc2be57213c762c7a. 2017-01-27 23:24:02 +01:00
Sebastian Lackner
a6c14e35e7 Rebase against 96a48efeeade7359c8c84a8c3a0a9768fb2a6194. 2017-01-27 00:45:45 +01:00
Sebastian Lackner
db836be757 msvideo.dll16-DrawDibProfileDisplay: Fix spec file. 2017-01-26 15:13:40 +01:00
Sebastian Lackner
e7a0f0e60e Rebase against 76644a7c26f2c2b3a5968665c349b45bdb294387. 2017-01-25 22:09:05 +01:00
Sebastian Lackner
26a06cd63b Release 2.0. 2017-01-25 06:34:02 +01:00
Sebastian Lackner
9ffe3e0eb6 crypt32-SHA_OIDs: Update Fixes line. 2017-01-24 20:13:51 +01:00
Sebastian Lackner
ac69f4b5df Added patch to fix alpha blending in X11DRV_UpdateLayeredWindow. 2017-01-24 14:48:06 +01:00
Sebastian Lackner
93fc292115 Added patch to replace Peb->BeingDebugged check by CheckRemoteDebuggerPresent. 2017-01-24 13:10:56 +01:00
Sebastian Lackner
b6f7d83896 d3d11-Deferred_Context: Update patchset. 2017-01-24 11:53:57 +01:00
Sebastian Lackner
fa1d5938f2 Added patch to recognize sha256/384/512 KEY OIDs. 2017-01-24 05:04:18 +01:00
Sebastian Lackner
f93bdfd5fb Added patch to implement support for 32bppRGB, 32bppRGBA and 32bppPRGBA in format converter. 2017-01-24 04:45:15 +01:00
Sebastian Lackner
cb587975ef Added patch to implement DXGI GammaControl methods. 2017-01-24 03:52:53 +01:00
Sebastian Lackner
819d0a394b patchupdate.py: Remove support for patch categories. 2017-01-23 21:30:25 +01:00
Sebastian Lackner
bf7d655c80 Added patch for ProfileImagePath registry key with users profile directory. 2017-01-23 08:44:17 +01:00
Sebastian Lackner
428f6a06ad Added patch to implement some more wined3d blend modes. 2017-01-22 16:36:35 +01:00
Sebastian Lackner
b22ec60228 Release 2.0-rc6. 2017-01-22 04:54:28 +01:00
Sebastian Lackner
15a75851db ntdll-_aulldvrm: Add missing ntoskrnl forwards. 2017-01-22 04:20:55 +01:00
Sebastian Lackner
5cd91c5928 Added patch to implement stub for QUERY_TYPE_PIPELINE_STATISTICS. 2017-01-22 02:51:58 +01:00
Sebastian Lackner
5e623ee4d9 Added patch to implement semi-stub for d3d11 context ResolveSubresource method. 2017-01-21 23:56:59 +01:00
Sebastian Lackner
2677244e40 Added patch to fix crash when trying to rendering without render target. 2017-01-21 23:30:12 +01:00
Sebastian Lackner
65a5de8630 Added patch to implement ntdll._aulldvrm. 2017-01-21 22:56:05 +01:00
Sebastian Lackner
b2341b8d08 Added patch to fix ordinal number of winmm.PlaySoundA. 2017-01-21 21:21:20 +01:00
Sebastian Lackner
c4de5ab774 winecfg-Staging: Add ' (Staging)' suffix in about dialog. 2017-01-21 21:17:51 +01:00
Sebastian Lackner
f3854126b1 Added patch to print process arguments in winedbg backtraces. 2017-01-21 20:20:13 +01:00
Sebastian Lackner
c40429f3c9 Added patch with multiple fixes for ole32 property storage. 2017-01-21 19:24:12 +01:00
Sebastian Lackner
d1af5f06fa ddraw-FlipToGDISurface: Update patchset and missing NULL pointer check. 2017-01-20 20:49:08 +01:00
Sebastian Lackner
af5ec899c3 winex11-MWM_Decorations: Update patchset. 2017-01-20 20:34:06 +01:00
Sebastian Lackner
3c781f3862 Added patch to implement semi-stubs for D3D11 deferred context. 2017-01-20 17:22:51 +01:00
Sebastian Lackner
7257898858 Added patch to fix DrawIndexedPrimitiveUP with non-zero min_vertex_idx. 2017-01-20 07:53:43 +01:00
Sebastian Lackner
3ad216bb25 patchutils.py: Fix Python 3 compatibility. 2017-01-20 05:00:18 +01:00
Sebastian Lackner
32823d7014 Rebase against 3ba2b5898cf9c78f81afc1fd620e5046a3392be0. 2017-01-20 04:58:12 +01:00
Sebastian Lackner
efca1a6845 patchutils.py: Generate more compact autogenerated patches. 2017-01-20 02:00:52 +01:00
Sebastian Lackner
76177e1da2 Added patch to relax dwSize validation ddraw_surface*_Lock. 2017-01-19 15:46:19 +01:00
Sebastian Lackner
dbaede0fc8 dxva2-Video_Decoder: Fixes for Makefile.in. 2017-01-19 11:57:31 +01:00
Sebastian Lackner
5353b4a5a4 widl-SLTG_Typelib_Support: Fixes for Makefile.in. 2017-01-19 11:37:50 +01:00
Sebastian Lackner
910abaa327 nvcuda-CUDA_Support: Fixes for Makefile.in. 2017-01-19 11:32:46 +01:00
Sebastian Lackner
6db72e951e bcrypt-Improvements: Add missing ncrypt forwards. 2017-01-19 11:02:48 +01:00
Sebastian Lackner
b9514dd7b0 patchinstall.sh: Further replacements echo -> printf.
Also remove a broken link.
2017-01-19 10:21:47 +01:00
Sebastian Lackner
76a233502e patchupdate.py: Use printf instead of echo to workaround bash/dash incompatibilities. 2017-01-19 09:15:23 +01:00
Sebastian Lackner
c0993595fe Added patch to implement msvcrt.nan functions. 2017-01-19 07:29:21 +01:00
Sebastian Lackner
49ba202882 Added patch to fix return type of shlwapi.SHAddDataBlock.
Also fixes parsing of multiline From: headers in staging/patchutils.py.
2017-01-19 07:17:02 +01:00
Sebastian Lackner
80a4e6bdd7 Added patch to fix calling function with instance and VARIANT return type in DispCallFunc. 2017-01-19 06:09:18 +01:00
Sebastian Lackner
0c4032f598 Rebase against 274a82b33c2907a2d28a50ba6919711cfabf1b20. 2017-01-18 23:41:07 +01:00
Sebastian Lackner
96bce84236 Added patch to fix API signature of ntdll.NtAllocateUuids. 2017-01-18 23:27:48 +01:00
Sebastian Lackner
e0e48313df vulkan-Vulkan_Implementation: Do not use conversion for ignored fields. 2017-01-18 20:56:21 +01:00
Sebastian Lackner
105afd2146 iphlpapi-TCP_Table: Fix a test failure. 2017-01-18 17:45:06 +01:00
Sebastian Lackner
966293c5d3 Rebase against b510dccecbfe80c26b030b78b903b38350d41012. 2017-01-18 16:52:22 +01:00
Sebastian Lackner
b19d0ea3ca Rebase against c3e6ecde36692d03dc360200c7a7044a02c4a392. 2017-01-16 23:23:59 +01:00
Sebastian Lackner
e745798070 ntdll-Grow_Virtual_Heap: Never attempt to release or decommit memory of a subheap.
This fixes a possible memory leak.
2017-01-16 05:01:38 +01:00
Sebastian Lackner
bb54734bd3 user32-Auto_Radio_Button: Add a missing Fixes line. 2017-01-16 02:34:33 +01:00
Sebastian Lackner
12d8b79c63 Release 2.0-rc5. 2017-01-15 23:26:44 +01:00
Sebastian Lackner
986a011548 Added patch to avoid duplicate definition of REFERENCE_TIME. 2017-01-15 22:56:27 +01:00
Sebastian Lackner
2c08a980e8 Added patch to check if any 16 bit thunks have been allocated before accessing pointer. 2017-01-15 19:18:02 +01:00
Sebastian Lackner
9686fe6647 Added patch to remove memory limitation to 32GB on 64-bit by growing heap dynamically. 2017-01-15 18:56:52 +01:00
Sebastian Lackner
b013afa660 Added patch with stub for rstrtmgr.RmShutdown. 2017-01-15 16:30:20 +01:00
Sebastian Lackner
bdb212523c Added patch to implement RunlevelInformationInActivationContext in RtlQueryInformationActivationContext. 2017-01-15 16:24:24 +01:00
Sebastian Lackner
d4f26a2f95 Added patch to ignore AllowXsltScript and AllowDocumentFunction properties in msxml. 2017-01-15 15:24:35 +01:00
Sebastian Lackner
1261a0540c Added patch to avoid setting DDCAPS_ALIGNBOUNDARYSRC as cap for ddraw. 2017-01-15 02:29:50 +01:00
Sebastian Lackner
577b85bdc8 Added patch to respect return value of callback in DirectSoundEnumerateA/W. 2017-01-14 23:20:54 +01:00
Sebastian Lackner
96a6d1cecc Added patch to build independent xinput9_1_0.dll instead of using forwards. 2017-01-14 22:46:53 +01:00
Sebastian Lackner
a90497bdef Added patch to improve stubs for Validate{Vertex,Pixel}Shader. 2017-01-14 08:29:21 +01:00
Sebastian Lackner
b6c5b6240b Added patch to catch page faults in NtQueryPerformanceCounter. 2017-01-14 08:19:10 +01:00
Sebastian Lackner
9c43bb8d2c Added patch to workaround a bug present in the current versions of Flex. 2017-01-14 05:50:14 +01:00
Sebastian Lackner
f06f5c3b0c Added patch to implement support for LABEL_SECURITY_INFORMATION. 2017-01-14 05:38:36 +01:00
Sebastian Lackner
b2098faef8 Added patch to fix cost computation in MSI for large values. 2017-01-14 01:28:20 +01:00
Sebastian Lackner
4b0fe0c820 Added patch to return success for TokenSessionId in NtSetInformationToken. 2017-01-14 01:18:35 +01:00
Sebastian Lackner
604d23df7c Rebase against 3c54d4fb6926195e43a1163b0a243d2614a5951f. 2017-01-14 00:55:36 +01:00
Sebastian Lackner
e65410b901 wined3d-WINED3DFMT_R32G32_UINT: Remove patch for issue fixed in dev branch (thanks Alistair). 2017-01-13 13:14:56 +01:00
Sebastian Lackner
7b4727f89c Added patch to start debugger always on WinSta0. 2017-01-13 02:00:22 +01:00
Sebastian Lackner
5f4b99aa18 Rebase against 083b35e7c77c32f2f011a7e4188edaf605e0848c. 2017-01-13 01:08:54 +01:00
Sebastian Lackner
73c19719e0 Added patch to improve mapping of DACL to file permissions. 2017-01-13 01:03:25 +01:00
Sebastian Lackner
eaff208f0d Added patch to implement support for navigating a group of radio buttons using a keyboard. 2017-01-12 17:08:24 +01:00
Sebastian Lackner
77452f30f8 wbemdisp-Printer: Rename patchset to wbemprox-Printer. 2017-01-12 05:35:37 +01:00
Sebastian Lackner
7ad3349f66 Added patch to fix row count in fill_processor and fill_printer function. 2017-01-12 05:34:14 +01:00
Sebastian Lackner
8c909daf10 server-Stored_ACLs: Update patch and fix handling of MAXIMUM_ALLOWED. 2017-01-12 02:57:24 +01:00
Sebastian Lackner
51fd657cdb Rebase against 8df9a11adebf72f3f1046a2efad6e8c85fc44c40. 2017-01-12 00:12:21 +01:00
Sebastian Lackner
634b0e2877 Added patches with various PE loader fixes for 8k demos. 2017-01-11 23:30:14 +01:00
Sebastian Lackner
2660a14433 Added patch to avoid double captions observed under some WMs. 2017-01-11 00:05:34 +01:00
Sebastian Lackner
ad5fb8a69e Rebase against ac59a68162321610841ed072981adddb8bc78c56. 2017-01-10 06:21:01 +01:00
Sebastian Lackner
b338f0c6d5 Release 2.0-rc4. 2017-01-09 04:41:37 +01:00
Sebastian Lackner
c9f8f08e41 Added patch to implement ddraw7_FlipToGDISurface. 2017-01-08 22:35:29 +01:00
Sebastian Lackner
a16141c94f Added patch for D3DX11CreateShaderResourceViewFromMemory stub. 2017-01-08 21:24:00 +01:00
Sebastian Lackner
d1fe864c5e Added patch to implement user32.GetAutoRotationState. 2017-01-08 20:53:03 +01:00
Sebastian Lackner
57055bbf20 xaudio2_7-Abandon_Albufs: Disable patchset. 2017-01-08 20:24:39 +01:00
Sebastian Lackner
c55fed6a14 Update copyright info for 2017. 2017-01-08 20:22:56 +01:00
Sebastian Lackner
ddd669c75b oleaut32-ITypeInfo_fnInvoke: Update patchset and add tests. 2017-01-08 20:18:10 +01:00
Sebastian Lackner
252ee012a2 Added patch to clear the dsound mixing buffer after allocation. 2017-01-08 20:09:24 +01:00
Sebastian Lackner
024a141714 Added patch to silence noisy FIXME in gl_stencil_op. 2017-01-08 17:50:50 +01:00
Sebastian Lackner
5530538a2b Added patch to fix handling of WM_WINDOWPOS{CHANGING,CHANGED} for deactivated topmost window. 2017-01-08 17:43:27 +01:00
Sebastian Lackner
b51fe90caa Rebase against 1576dc3dd26c7bbb2ed8eb68f11799f1f1d8b6a2. 2017-01-08 04:42:04 +01:00
Sebastian Lackner
cb8a0d2ffd Rebase against 56959b18085ea22050d0226f669f112abfb37850. 2017-01-03 09:19:01 +01:00
Sebastian Lackner
11313c0788 oleaut32-OleLoadPicture: Update patchset to fix regression with transparency handling. 2016-12-31 16:28:23 +01:00
Sebastian Lackner
d184fa7831 Release 2.0-rc3. 2016-12-26 22:16:58 +01:00
Sebastian Lackner
ffccd4f5dd Added patch to ignore externally set DC state in gdiplus. 2016-12-26 17:43:42 +01:00
Sebastian Lackner
08fc972c37 uxtheme-CloseThemeClass: Fix reference to bug report. 2016-12-26 17:35:52 +01:00
Sebastian Lackner
dc7f74f24f Added patch to create ProxyEnable key on wineprefix update. 2016-12-26 17:15:36 +01:00
Sebastian Lackner
b372d532ca dxva2-Video_Decoder: Fix compile warning when compiling without libva support. 2016-12-26 16:37:54 +01:00
Sebastian Lackner
8db21bfce6 bcrypt-Improvements: Update patchset and implement support for AES GCM. 2016-12-26 16:23:51 +01:00
Sebastian Lackner
84b08ebde9 Rebase against 1bcd38f788bb5165cc65a830ea912ff4eda50b84. 2016-12-23 04:04:54 +01:00
469 changed files with 24135 additions and 24363 deletions

View File

@@ -7,7 +7,7 @@ are part of **Wine Staging** and are licensed under the terms of the
[LGPLv2.1](#gnu-lgpl-version-21), to stay compatible with Wine:
```
Copyright (C) 2014-2016 the Wine Staging project authors.
Copyright (C) 2014-2017 the Wine Staging project authors.
Wine Staging is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public

View File

@@ -1 +0,0 @@
Category: stable

View File

@@ -1,4 +1,4 @@
From a41dac0b19ec2ba3807da4ac42d77717d79f1115 Mon Sep 17 00:00:00 2001
From 41ee5d7699182ea01c61223ab9d0a10473e16ac2 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 2 Oct 2014 19:44:31 +0200
Subject: kernel32: Add winediag message to show warning, that this isn't
@@ -9,7 +9,7 @@ Subject: kernel32: Add winediag message to show warning, that this isn't
1 file changed, 9 insertions(+)
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index b0c06e3..a2c1d4c 100644
index 6d0fc74cdf4..ed1d967ffdf 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -65,6 +65,7 @@
@@ -20,7 +20,7 @@ index b0c06e3..a2c1d4c 100644
#ifdef __APPLE__
extern char **__wine_get_main_environment(void);
@@ -1099,6 +1100,14 @@ static DWORD WINAPI start_process( PEB *peb )
@@ -1104,6 +1105,14 @@ static DWORD WINAPI start_process( PEB *peb )
DPRINTF( "%04x:Starting process %s (entryproc=%p)\n", GetCurrentThreadId(),
debugstr_w(peb->ProcessParameters->ImagePathName.Buffer), entry );
@@ -32,9 +32,9 @@ index b0c06e3..a2c1d4c 100644
+ else
+ WARN_(winediag)("Wine Staging %s is a testing version containing experimental patches.\n", wine_get_version());
+
SetLastError( 0 ); /* clear error code */
if (peb->BeingDebugged) DbgBreakPoint();
return call_process_entry( peb, entry );
if (!CheckRemoteDebuggerPresent( GetCurrentProcess(), &being_debugged ))
being_debugged = FALSE;
--
2.5.1
2.11.0

View File

@@ -1 +0,0 @@
Category: stable

View File

@@ -1,185 +0,0 @@
From 9904ee15d00d0809c12759446c09adc1981e3cf9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 29 Aug 2016 19:45:47 +0200
Subject: advapi32: Implement AddMandatoryAce.
---
dlls/advapi32/security.c | 6 ++++--
dlls/advapi32/tests/security.c | 45 ++++++++++++++++++++++++++++++++++++++++++
dlls/ntdll/ntdll.spec | 1 +
dlls/ntdll/sec.c | 25 +++++++++++++++++++++++
include/winbase.h | 1 +
include/winternl.h | 1 +
6 files changed, 77 insertions(+), 2 deletions(-)
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index 28331df..45c0f7e 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -1711,10 +1711,12 @@ BOOL WINAPI AddAce(
return set_ntstatus(RtlAddAce(pAcl, dwAceRevision, dwStartingAceIndex, pAceList, nAceListLength));
}
+/******************************************************************************
+ * AddMandatoryAce [ADVAPI32.@]
+ */
BOOL WINAPI AddMandatoryAce(ACL *acl, DWORD ace_revision, DWORD ace_flags, DWORD mandatory_policy, PSID label_sid)
{
- FIXME("%p %x %x %x %p - stub\n", acl, ace_revision, ace_flags, mandatory_policy, label_sid);
- return FALSE;
+ return set_ntstatus(RtlAddMandatoryAce(acl, ace_revision, ace_flags, mandatory_policy, SYSTEM_MANDATORY_LABEL_ACE_TYPE, label_sid));
}
/******************************************************************************
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index 18f4e04..cdbe4f8 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -65,6 +65,7 @@
static BOOL (WINAPI *pAddAccessAllowedAceEx)(PACL, DWORD, DWORD, DWORD, PSID);
static BOOL (WINAPI *pAddAccessDeniedAceEx)(PACL, DWORD, DWORD, DWORD, PSID);
static BOOL (WINAPI *pAddAuditAccessAceEx)(PACL, DWORD, DWORD, DWORD, PSID, BOOL, BOOL);
+static BOOL (WINAPI *pAddMandatoryAce)(PACL,DWORD,DWORD,DWORD,PSID);
static VOID (WINAPI *pBuildTrusteeWithSidA)( PTRUSTEEA pTrustee, PSID pSid );
static VOID (WINAPI *pBuildTrusteeWithNameA)( PTRUSTEEA pTrustee, LPSTR pName );
static VOID (WINAPI *pBuildTrusteeWithObjectsAndNameA)( PTRUSTEEA pTrustee,
@@ -199,6 +200,7 @@ static void init(void)
pAddAccessAllowedAceEx = (void *)GetProcAddress(hmod, "AddAccessAllowedAceEx");
pAddAccessDeniedAceEx = (void *)GetProcAddress(hmod, "AddAccessDeniedAceEx");
pAddAuditAccessAceEx = (void *)GetProcAddress(hmod, "AddAuditAccessAceEx");
+ pAddMandatoryAce = (void *)GetProcAddress(hmod, "AddMandatoryAce");
pCheckTokenMembership = (void *)GetProcAddress(hmod, "CheckTokenMembership");
pConvertStringSecurityDescriptorToSecurityDescriptorA =
(void *)GetProcAddress(hmod, "ConvertStringSecurityDescriptorToSecurityDescriptorA" );
@@ -6064,6 +6066,48 @@ static void test_default_dacl_owner_sid(void)
CloseHandle( handle );
}
+static void test_integrity(void)
+{
+ static SID low_level = {SID_REVISION, 1, {SECURITY_MANDATORY_LABEL_AUTHORITY},
+ {SECURITY_MANDATORY_LOW_RID}};
+ SYSTEM_MANDATORY_LABEL_ACE *ace;
+ char buffer_acl[256];
+ ACL *pAcl = (ACL*)&buffer_acl;
+ BOOL ret, found;
+ DWORD index;
+
+ if (!pAddMandatoryAce)
+ {
+ win_skip("Mandatory integrity labels not supported, skipping test\n");
+ return;
+ }
+
+ ret = InitializeAcl(pAcl, 256, ACL_REVISION);
+ ok(ret, "InitializeAcl failed with %u\n", GetLastError());
+
+ ret = pAddMandatoryAce(pAcl, ACL_REVISION, 0, 0x1234, &low_level);
+ ok(!ret, "AddMandatoryAce succeeded\n");
+ ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER got %u\n", GetLastError());
+
+ ret = pAddMandatoryAce(pAcl, ACL_REVISION, 0, SYSTEM_MANDATORY_LABEL_NO_WRITE_UP, &low_level);
+ ok(ret, "AddMandatoryAce failed with %u\n", GetLastError());
+
+ index = 0;
+ found = FALSE;
+ while (pGetAce( pAcl, index++, (void **)&ace ))
+ {
+ if (ace->Header.AceType == SYSTEM_MANDATORY_LABEL_ACE_TYPE)
+ {
+ found = TRUE;
+ ok(ace->Header.AceFlags == 0, "Expected 0 as flags, got %x\n", ace->Header.AceFlags);
+ ok(ace->Mask == SYSTEM_MANDATORY_LABEL_NO_WRITE_UP,
+ "Expected SYSTEM_MANDATORY_LABEL_NO_WRITE_UP as flag, got %x\n", ace->Mask);
+ ok(EqualSid(&ace->SidStart, &low_level), "Expected low integrity level\n");
+ }
+ }
+ ok(found, "Could not find mandatory label\n");
+}
+
static void test_AdjustTokenPrivileges(void)
{
TOKEN_PRIVILEGES tp, prev;
@@ -6444,6 +6488,7 @@ START_TEST(security)
test_CreateRestrictedToken();
test_TokenIntegrityLevel();
test_default_dacl_owner_sid();
+ test_integrity();
test_AdjustTokenPrivileges();
test_AddAce();
test_system_security_access();
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 28aa2df..f6f8eba 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -422,6 +422,7 @@
@ stdcall RtlAddAuditAccessAceEx(ptr long long long ptr long long)
@ stdcall RtlAddAuditAccessObjectAce(ptr long long long ptr ptr ptr long long)
# @ stub RtlAddCompoundAce
+@ stdcall RtlAddMandatoryAce(ptr long long long long ptr)
# @ stub RtlAddRange
@ cdecl -arch=arm,x86_64 RtlAddFunctionTable(ptr long long)
@ stdcall RtlAddRefActivationContext(ptr)
diff --git a/dlls/ntdll/sec.c b/dlls/ntdll/sec.c
index 3bc52ac..daa2cae 100644
--- a/dlls/ntdll/sec.c
+++ b/dlls/ntdll/sec.c
@@ -1379,6 +1379,31 @@ NTSTATUS WINAPI RtlAddAuditAccessObjectAce(
return STATUS_NOT_IMPLEMENTED;
}
+/**************************************************************************
+ * RtlAddMandatoryAce [NTDLL.@]
+ */
+NTSTATUS WINAPI RtlAddMandatoryAce(
+ IN OUT PACL pAcl,
+ IN DWORD dwAceRevision,
+ IN DWORD dwAceFlags,
+ IN DWORD dwMandatoryFlags,
+ IN DWORD dwAceType,
+ IN PSID pSid)
+{
+ static DWORD valid_flags = SYSTEM_MANDATORY_LABEL_NO_WRITE_UP | SYSTEM_MANDATORY_LABEL_NO_READ_UP |
+ SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP;
+
+ TRACE("(%p,%d,0x%08x,0x%08x,%u,%p)\n",pAcl,dwAceRevision,dwAceFlags,dwMandatoryFlags, dwAceType, pSid);
+
+ if (dwAceType != SYSTEM_MANDATORY_LABEL_ACE_TYPE)
+ return STATUS_INVALID_PARAMETER;
+
+ if (dwMandatoryFlags & ~valid_flags)
+ return STATUS_INVALID_PARAMETER;
+
+ return add_access_ace(pAcl, dwAceRevision, dwAceFlags, dwMandatoryFlags, pSid, dwAceType);
+}
+
/******************************************************************************
* RtlValidAcl [NTDLL.@]
*/
diff --git a/include/winbase.h b/include/winbase.h
index eff5972..42c826d 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -1693,6 +1693,7 @@ WINBASEAPI ATOM WINAPI AddAtomW(LPCWSTR);
#define AddAtom WINELIB_NAME_AW(AddAtom)
WINADVAPI BOOL WINAPI AddAuditAccessAce(PACL,DWORD,DWORD,PSID,BOOL,BOOL);
WINADVAPI BOOL WINAPI AddAuditAccessAceEx(PACL,DWORD,DWORD,DWORD,PSID,BOOL,BOOL);
+WINADVAPI BOOL WINAPI AddMandatoryAce(PACL,DWORD,DWORD,DWORD,PSID);
WINBASEAPI VOID WINAPI AddRefActCtx(HANDLE);
WINBASEAPI PVOID WINAPI AddVectoredExceptionHandler(ULONG,PVECTORED_EXCEPTION_HANDLER);
WINADVAPI BOOL WINAPI AdjustTokenGroups(HANDLE,BOOL,PTOKEN_GROUPS,DWORD,PTOKEN_GROUPS,PDWORD);
diff --git a/include/winternl.h b/include/winternl.h
index f35091c..c104e6f 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -2405,6 +2405,7 @@ NTSYSAPI NTSTATUS WINAPI RtlAddAtomToAtomTable(RTL_ATOM_TABLE,const WCHAR*,RTL_
NTSYSAPI NTSTATUS WINAPI RtlAddAuditAccessAce(PACL,DWORD,DWORD,PSID,BOOL,BOOL);
NTSYSAPI NTSTATUS WINAPI RtlAddAuditAccessAceEx(PACL,DWORD,DWORD,DWORD,PSID,BOOL,BOOL);
NTSYSAPI NTSTATUS WINAPI RtlAddAuditAccessObjectAce(PACL,DWORD,DWORD,DWORD,GUID*,GUID*,PSID,BOOL,BOOL);
+NTSYSAPI NTSTATUS WINAPI RtlAddMandatoryAce(PACL,DWORD,DWORD,DWORD,DWORD,PSID);
NTSYSAPI void WINAPI RtlAddRefActivationContext(HANDLE);
NTSYSAPI PVOID WINAPI RtlAddVectoredExceptionHandler(ULONG,PVECTORED_EXCEPTION_HANDLER);
NTSYSAPI NTSTATUS WINAPI RtlAdjustPrivilege(ULONG,BOOLEAN,BOOLEAN,PBOOLEAN);
--
2.9.0

View File

@@ -1 +0,0 @@
Fixes: Implement advapi32.AddMandatoryAce

View File

@@ -1,4 +1,4 @@
From cb383abcb7d36d739092a93c1f276895622b6806 Mon Sep 17 00:00:00 2001
From b4469d7a12637ef2b57df3f6aebbe65c9b52ef57 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.
@@ -9,7 +9,7 @@ Subject: advapi32: Implement GetExplicitEntriesFromAclW.
2 files changed, 221 insertions(+), 2 deletions(-)
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index 92a1789..c60aa4e 100644
index 7e41c0a7361..ccd0bf64cab 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -4202,8 +4202,85 @@ DWORD WINAPI GetExplicitEntriesFromAclA( PACL pacl, PULONG pcCountOfExplicitEntr
@@ -101,7 +101,7 @@ index 92a1789..c60aa4e 100644
/******************************************************************************
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index cf104ab..2bcb108 100644
index c31dfbeace3..23cbff58117 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -133,6 +133,7 @@ static BOOL (WINAPI *pGetWindowsAccountDomainSid)(PSID,PSID,DWORD*);
@@ -120,8 +120,8 @@ index cf104ab..2bcb108 100644
myARGC = winetest_get_mainargs( &myARGV );
}
@@ -6378,6 +6380,145 @@ static void test_pseudo_tokens(void)
"Expected ERROR_NO_TOKEN, got %u\n", GetLastError());
@@ -6451,6 +6453,145 @@ static void test_maximum_allowed(void)
CloseHandle(handle);
}
+static void test_GetExplicitEntriesFromAclW(void)
@@ -266,12 +266,12 @@ index cf104ab..2bcb108 100644
START_TEST(security)
{
init();
@@ -6424,4 +6565,5 @@ START_TEST(security)
test_system_security_access();
@@ -6499,4 +6640,5 @@ START_TEST(security)
test_GetSidIdentifierAuthority();
test_pseudo_tokens();
test_maximum_allowed();
+ test_GetExplicitEntriesFromAclW();
}
--
2.9.0
2.11.0

View File

@@ -0,0 +1,61 @@
From bb079b53bc79d44987d5f7ac93d0e1d2c5b00698 Mon Sep 17 00:00:00 2001
From: Austin English <austinenglish@gmail.com>
Date: Wed, 9 Nov 2016 21:46:10 -0600
Subject: advapi32: add LookupSecurityDescriptorPartsA/W stubs
Fixes https://bugs.winehq.org/show_bug.cgi?id=41682
---
dlls/advapi32/advapi32.spec | 4 ++--
dlls/advapi32/security.c | 24 ++++++++++++++++++++++++
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec
index 6c57c88adf7..88d8634ef64 100644
--- a/dlls/advapi32/advapi32.spec
+++ b/dlls/advapi32/advapi32.spec
@@ -415,8 +415,8 @@
@ stdcall LookupPrivilegeNameW(wstr ptr ptr ptr)
@ stdcall LookupPrivilegeValueA(ptr ptr ptr)
@ stdcall LookupPrivilegeValueW(ptr ptr ptr)
-# @ stub LookupSecurityDescriptorPartsA
-# @ stub LookupSecurityDescriptorPartsW
+@ stdcall LookupSecurityDescriptorPartsA(ptr ptr ptr ptr ptr ptr ptr)
+@ stdcall LookupSecurityDescriptorPartsW(ptr ptr ptr ptr ptr ptr ptr)
@ stdcall LsaAddAccountRights(ptr ptr ptr long)
@ stub LsaAddPrivilegesToAccount
# @ stub LsaClearAuditLog
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index 3b5d7a42b6f..01e8ea02706 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -6199,3 +6199,27 @@ BOOL WINAPI SaferSetLevelInformation(SAFER_LEVEL_HANDLE handle, SAFER_OBJECT_INF
FIXME("(%p %u %p %u) stub\n", handle, infotype, buffer, size);
return FALSE;
}
+
+/******************************************************************************
+ * LookupSecurityDescriptorPartsA [ADVAPI32.@]
+ */
+DWORD WINAPI LookupSecurityDescriptorPartsA(TRUSTEEA *owner, TRUSTEEA *group, ULONG *access_count,
+ EXPLICIT_ACCESSA *access_list, ULONG *audit_count,
+ EXPLICIT_ACCESSA *audit_list, SECURITY_DESCRIPTOR *descriptor)
+{
+ FIXME("(%p %p %p %p %p %p %p) stub\n", owner, group, access_count,
+ access_list, audit_count, audit_list, descriptor);
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/******************************************************************************
+ * LookupSecurityDescriptorPartsW [ADVAPI32.@]
+ */
+DWORD WINAPI LookupSecurityDescriptorPartsW(TRUSTEEW *owner, TRUSTEEW *group, ULONG *access_count,
+ EXPLICIT_ACCESSW *access_list, ULONG *audit_count,
+ EXPLICIT_ACCESSW *audit_list, SECURITY_DESCRIPTOR *descriptor)
+{
+ FIXME("(%p %p %p %p %p %p %p) stub\n", owner, group, access_count,
+ access_list, audit_count, audit_list, descriptor);
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
--
2.11.0

View File

@@ -0,0 +1 @@
Fixes: [41682] Add stub for advapi32.LookupSecurityDescriptorPartsA/W

View File

@@ -1,4 +1,4 @@
From 616c17cc58a4943d3a367704943e737d5713740d Mon Sep 17 00:00:00 2001
From 77d43d721793edda9b419f7426442a35f0cb5918 Mon Sep 17 00:00:00 2001
From: Qian Hong <qhong@codeweavers.com>
Date: Tue, 7 Apr 2015 11:23:34 +0800
Subject: advapi32: Fallback to Sid string when LookupAccountSid fails.
@@ -8,7 +8,7 @@ Subject: advapi32: Fallback to Sid string when LookupAccountSid fails.
1 file changed, 31 insertions(+)
diff --git a/dlls/advapi32/lsa.c b/dlls/advapi32/lsa.c
index 258b8ca..93afa20 100644
index 1b270a80829..b8dedbd6d58 100644
--- a/dlls/advapi32/lsa.c
+++ b/dlls/advapi32/lsa.c
@@ -29,6 +29,7 @@
@@ -19,8 +19,8 @@ index 258b8ca..93afa20 100644
#include "advapi32_misc.h"
#include "wine/debug.h"
@@ -554,6 +555,21 @@ NTSTATUS WINAPI LsaLookupSids(
heap_free(name);
@@ -562,6 +563,21 @@ NTSTATUS WINAPI LsaLookupSids(
domain.MaximumLength = sizeof(WCHAR);
}
}
+ else
@@ -41,9 +41,9 @@ index 258b8ca..93afa20 100644
}
/* now we have full length needed for both */
@@ -593,6 +609,21 @@ NTSTATUS WINAPI LsaLookupSids(
heap_free(domain.Buffer);
}
@@ -605,6 +621,21 @@ NTSTATUS WINAPI LsaLookupSids(
(*Names)[i].DomainIndex = lsa_reflist_add_domain(*ReferencedDomains, &domain, &domain_data);
heap_free(domain.Buffer);
}
+ else
+ {
@@ -64,5 +64,5 @@ index 258b8ca..93afa20 100644
name_buffer += name_size;
}
--
2.3.5
2.11.0

View File

@@ -1,4 +1,4 @@
From 51fb5229fdb33887fe25440defc8df09d1623abb Mon Sep 17 00:00:00 2001
From 306414ced0169b9ee4de34706e9235acb1bd93d6 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.
@@ -13,7 +13,7 @@ Subject: kernelbase: Add dll and add stub for QuirkIsEnabled.
create mode 100644 dlls/kernelbase/misc.c
diff --git a/dlls/kernelbase/Makefile.in b/dlls/kernelbase/Makefile.in
index b9caed0..2beb34b 100644
index b9caed090b2..2beb34bafdb 100644
--- a/dlls/kernelbase/Makefile.in
+++ b/dlls/kernelbase/Makefile.in
@@ -1 +1,4 @@
@@ -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 f104030..e09112e 100644
index f104030ab25..74ff728cbc8 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -1,3 +1,6 @@
@@ -96,7 +96,7 @@ index f104030..e09112e 100644
-@ stub BaseReleaseProcessDllPath
-@ stub BaseReleaseProcessExePath
+@ stub BaseDumpAppcompatCache
+@ stub BaseFlushAppcompatCache
+@ stdcall BaseFlushAppcompatCache() kernel32.BaseFlushAppcompatCache
+@ stub BaseFormatObjectAttributes
+@ stub BaseFreeAppCompatDataForProcess
+@ stub BaseGetNamedObjectDirectory
@@ -244,7 +244,7 @@ index f104030..e09112e 100644
+@ stdcall CreateWaitableTimerW(ptr long wstr) kernel32.CreateWaitableTimerW
@ stdcall CreateWellKnownSid(long ptr ptr ptr) advapi32.CreateWellKnownSid
+@ stub CtrlRoutine
+@ stdcall DeactivateActCtx(long ptr) kernel32.DeactivateActCtx
+@ stdcall DeactivateActCtx(long long) kernel32.DeactivateActCtx
+@ stdcall DebugActiveProcess(long) kernel32.DebugActiveProcess
+@ stdcall DebugActiveProcessStop(long) kernel32.DebugActiveProcessStop
@ stdcall DebugBreak() kernel32.DebugBreak
@@ -433,7 +433,7 @@ index f104030..e09112e 100644
@ stub GetCalendar
@ stdcall GetCalendarInfoEx(wstr long ptr long ptr long ptr) kernel32.GetCalendarInfoEx
@ stdcall GetCalendarInfoW(long long long ptr long ptr) kernel32.GetCalendarInfoW
+@ stdcall GetCommConfig(long ptr long) kernel32.GetCommConfig
+@ stdcall GetCommConfig(long ptr ptr) kernel32.GetCommConfig
+@ stdcall GetCommMask(long ptr) kernel32.GetCommMask
+@ stdcall GetCommModemStatus(long ptr) kernel32.GetCommModemStatus
+@ stdcall GetCommProperties(long ptr) kernel32.GetCommProperties
@@ -1354,7 +1354,7 @@ index f104030..e09112e 100644
+@ stub SetClientTimeZoneInformation
+@ stdcall SetCommBreak(long) kernel32.SetCommBreak
+@ stdcall SetCommConfig(long ptr long) kernel32.SetCommConfig
+@ stdcall SetCommMask(long ptr) kernel32.SetCommMask
+@ stdcall SetCommMask(long long) kernel32.SetCommMask
+@ stdcall SetCommState(long ptr) kernel32.SetCommState
+@ stdcall SetCommTimeouts(long ptr) kernel32.SetCommTimeouts
+@ stdcall SetComputerNameA(str) kernel32.SetComputerNameA
@@ -1715,7 +1715,7 @@ index f104030..e09112e 100644
+@ stub wprintf
diff --git a/dlls/kernelbase/misc.c b/dlls/kernelbase/misc.c
new file mode 100644
index 0000000..be1591a
index 00000000000..be1591aee7e
--- /dev/null
+++ b/dlls/kernelbase/misc.c
@@ -0,0 +1,37 @@
@@ -1757,7 +1757,7 @@ index 0000000..be1591a
+ return FALSE;
+}
diff --git a/dlls/shlwapi/shlwapi.spec b/dlls/shlwapi/shlwapi.spec
index 6b6ead2..7c2a9d1 100644
index 6b6ead26968..7c2a9d117e0 100644
--- a/dlls/shlwapi/shlwapi.spec
+++ b/dlls/shlwapi/shlwapi.spec
@@ -417,7 +417,7 @@
@@ -1770,10 +1770,10 @@ 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 8e11529..eba8548 100755
index 1e2400e4c7f..a245aefe406 100755
--- a/tools/make_specfiles
+++ b/tools/make_specfiles
@@ -233,6 +233,7 @@ my @dll_groups =
@@ -249,6 +249,7 @@ my @dll_groups =
[
"kernel32",
"advapi32",
@@ -1782,5 +1782,5 @@ index 8e11529..eba8548 100755
"kernelbase",
"api-ms-win-core-bem-l1-1-0",
--
2.9.0
2.11.0

View File

@@ -1,42 +0,0 @@
From 64ce8c391c3706a2b3ce9b5f8f76710d5751a766 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Thu, 20 Oct 2016 17:48:24 +0800
Subject: avifil32: AVIFileGetStream should set stream to NULL in case of an
error.
---
dlls/avifil32/avifile.c | 1 +
dlls/avifil32/tests/api.c | 5 +++++
2 files changed, 6 insertions(+)
diff --git a/dlls/avifil32/avifile.c b/dlls/avifil32/avifile.c
index f649d05..7a4caaa 100644
--- a/dlls/avifil32/avifile.c
+++ b/dlls/avifil32/avifile.c
@@ -316,6 +316,7 @@ static HRESULT WINAPI IAVIFile_fnGetStream(IAVIFile *iface, IAVIStream **avis, D
}
/* Sorry, but the specified stream doesn't exist */
+ *avis = NULL;
return AVIERR_NODATA;
}
diff --git a/dlls/avifil32/tests/api.c b/dlls/avifil32/tests/api.c
index b3d822d..8a00865 100644
--- a/dlls/avifil32/tests/api.c
+++ b/dlls/avifil32/tests/api.c
@@ -373,6 +373,11 @@ static void test_default_data(void)
res = AVIFileOpenA(&pFile, filename, OF_SHARE_DENY_WRITE, 0L);
ok(res == 0, "Unable to open file: error=%u\n", res);
+ pStream0 = (void *)0xdeadbeef;
+ res = AVIFileGetStream(pFile, &pStream0, ~0, 0);
+ ok(res == AVIERR_NODATA, "expected AVIERR_NODATA, got %#x\n", res);
+ ok(pStream0 == NULL, "AVIFileGetStream should set stream to NULL\n");
+
res = AVIFileGetStream(pFile, &pStream0, 0, 0);
ok(res == 0, "Unable to open video stream: error=%u\n", res);
--
2.9.0

View File

@@ -1 +0,0 @@
Fixes: [41579] AVIFileGetStream should set stream to NULL in case of an error

View File

@@ -1,4 +1,4 @@
From b6efa0b8bb1bba73863ca985c13d46a5eaec4198 Mon Sep 17 00:00:00 2001
From 489a67ec803b382248134be53f3449c206e208ff Mon Sep 17 00:00:00 2001
From: Hans Leidekker <hans@codeweavers.com>
Date: Mon, 19 Dec 2016 19:38:52 +0100
Subject: bcrypt: Add AES provider.
@@ -7,11 +7,12 @@ Subject: bcrypt: Add AES provider.
dlls/bcrypt/bcrypt.spec | 10 +-
dlls/bcrypt/bcrypt_main.c | 347 ++++++++++++++++++++++++++++++++++++++++++++-
dlls/bcrypt/tests/bcrypt.c | 18 +--
dlls/ncrypt/ncrypt.spec | 10 +-
include/bcrypt.h | 3 +
4 files changed, 352 insertions(+), 26 deletions(-)
5 files changed, 357 insertions(+), 31 deletions(-)
diff --git a/dlls/bcrypt/bcrypt.spec b/dlls/bcrypt/bcrypt.spec
index e299fe0..962953e 100644
index e299fe0cce8..962953e509b 100644
--- a/dlls/bcrypt/bcrypt.spec
+++ b/dlls/bcrypt/bcrypt.spec
@@ -5,15 +5,15 @@
@@ -52,7 +53,7 @@ index e299fe0..962953e 100644
@ stub BCryptUnregisterConfigChangeNotify
@ stub BCryptUnregisterProvider
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index 6023c94..937bdf7 100644
index 6023c942e49..5867dbdc3fa 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -49,6 +49,10 @@ WINE_DECLARE_DEBUG_CHANNEL(winediag);
@@ -207,7 +208,7 @@ index 6023c94..937bdf7 100644
return BCryptDestroyHash( handle );
}
+#if defined(HAVE_GNUTLS_HASH)
+#if defined(HAVE_GNUTLS_HASH) && !defined(HAVE_COMMONCRYPTO_COMMONDIGEST_H)
+struct key
+{
+ struct object hdr;
@@ -469,7 +470,7 @@ index 6023c94..937bdf7 100644
+ struct key *key = handle;
+ NTSTATUS status;
+
+ FIXME( "%p, %p, %u, %p, %p, %u, %p, %u, %p, %08x\n", handle, input, input_len,
+ TRACE( "%p, %p, %u, %p, %p, %u, %p, %u, %p, %08x\n", handle, input, input_len,
+ padding, iv, iv_len, output, output_len, ret_len, flags );
+
+ if (!key || key->hdr.magic != MAGIC_KEY) return STATUS_INVALID_HANDLE;
@@ -498,7 +499,7 @@ index 6023c94..937bdf7 100644
{
switch (reason)
diff --git a/dlls/bcrypt/tests/bcrypt.c b/dlls/bcrypt/tests/bcrypt.c
index 3e41335..2668153 100644
index 422f2cfd340..d2df74ed919 100644
--- a/dlls/bcrypt/tests/bcrypt.c
+++ b/dlls/bcrypt/tests/bcrypt.c
@@ -780,7 +780,7 @@ static void test_aes(void)
@@ -510,7 +511,7 @@ index 3e41335..2668153 100644
alg = NULL;
ret = pBCryptOpenAlgorithmProvider(&alg, BCRYPT_AES_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0);
ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
@@ -828,7 +828,6 @@ todo_wine {
@@ -814,7 +814,6 @@ todo_wine {
ret = pBCryptCloseAlgorithmProvider(alg, 0);
ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
}
@@ -518,7 +519,7 @@ index 3e41335..2668153 100644
static void test_BCryptGenerateSymmetricKey(void)
{
@@ -847,11 +846,6 @@ static void test_BCryptGenerateSymmetricKey(void)
@@ -833,11 +832,6 @@ static void test_BCryptGenerateSymmetricKey(void)
NTSTATUS ret;
ret = pBCryptOpenAlgorithmProvider(&aes, BCRYPT_AES_ALGORITHM, NULL, 0);
@@ -530,7 +531,7 @@ index 3e41335..2668153 100644
ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
len = size = 0xdeadbeef;
@@ -936,11 +930,6 @@ static void test_BCryptEncrypt(void)
@@ -922,11 +916,6 @@ static void test_BCryptEncrypt(void)
NTSTATUS ret;
ret = pBCryptOpenAlgorithmProvider(&aes, BCRYPT_AES_ALGORITHM, NULL, 0);
@@ -542,7 +543,7 @@ index 3e41335..2668153 100644
ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
len = 0xdeadbeef;
@@ -1027,11 +1016,6 @@ static void test_BCryptDecrypt(void)
@@ -1013,11 +1002,6 @@ static void test_BCryptDecrypt(void)
NTSTATUS ret;
ret = pBCryptOpenAlgorithmProvider(&aes, BCRYPT_AES_ALGORITHM, NULL, 0);
@@ -554,8 +555,51 @@ index 3e41335..2668153 100644
ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
len = 0xdeadbeef;
diff --git a/dlls/ncrypt/ncrypt.spec b/dlls/ncrypt/ncrypt.spec
index 04127608d68..60b7eb37075 100644
--- a/dlls/ncrypt/ncrypt.spec
+++ b/dlls/ncrypt/ncrypt.spec
@@ -5,17 +5,17 @@
@ stub BCryptConfigureContextFunction
@ stub BCryptCreateContext
@ stdcall BCryptCreateHash(ptr ptr ptr long ptr long long) bcrypt.BCryptCreateHash
-@ stub BCryptDecrypt
+@ stdcall BCryptDecrypt(ptr ptr long ptr ptr long ptr long ptr long) bcrypt.BCryptDecrypt
@ stub BCryptDeleteContext
@ stub BCryptDeriveKey
@ stub BCryptDeriveKeyCapi
@ stub BCryptDeriveKeyPBKDF2
@ stdcall BCryptDestroyHash(ptr) bcrypt.BCryptDestroyHash
-@ stub BCryptDestroyKey
+@ stdcall BCryptDestroyKey(ptr) bcrypt.BCryptDestroyKey
@ stub BCryptDestroySecret
@ stub BCryptDuplicateHash
@ stub BCryptDuplicateKey
-@ stub BCryptEncrypt
+@ stdcall BCryptEncrypt(ptr ptr long ptr ptr long ptr long ptr long) bcrypt.BCryptEncrypt
@ stdcall BCryptEnumAlgorithms(long ptr ptr long) bcrypt.BCryptEnumAlgorithms
@ stub BCryptEnumContextFunctionProviders
@ stub BCryptEnumContextFunctions
@@ -28,7 +28,7 @@
@ stub BCryptFreeBuffer
@ stdcall BCryptGenRandom(ptr ptr long long) bcrypt.BCryptGenRandom
@ stub BCryptGenerateKeyPair
-@ stub BCryptGenerateSymmetricKey
+@ stdcall BCryptGenerateSymmetricKey(ptr ptr ptr long ptr long long) bcrypt.BCryptGenerateSymmetricKey
@ stdcall BCryptGetFipsAlgorithmMode(ptr) bcrypt.BCryptGetFipsAlgorithmMode
@ stdcall BCryptGetProperty(ptr wstr ptr long ptr long) bcrypt.BCryptGetProperty
@ stdcall BCryptHash(ptr ptr long ptr long ptr long) bcrypt.BCryptHash
@@ -49,7 +49,7 @@
@ stub BCryptSecretAgreement
@ stub BCryptSetAuditingInterface
@ stub BCryptSetContextFunctionProperty
-@ stub BCryptSetProperty
+@ stdcall BCryptSetProperty(ptr wstr ptr long long) bcrypt.BCryptSetProperty
@ stub BCryptSignHash
@ stub BCryptUnregisterConfigChangeNotify
@ stub BCryptUnregisterProvider
diff --git a/include/bcrypt.h b/include/bcrypt.h
index 05d0691..6af85e3 100644
index 05d0691f9c3..6af85e36143 100644
--- a/include/bcrypt.h
+++ b/include/bcrypt.h
@@ -74,6 +74,9 @@ typedef LONG NTSTATUS;
@@ -569,5 +613,5 @@ index 05d0691..6af85e3 100644
typedef struct _BCRYPT_ALGORITHM_IDENTIFIER
{
--
2.9.0
2.11.0

View File

@@ -1,4 +1,4 @@
From ecff30df4deadc0df006a880a5528343a4ab788f Mon Sep 17 00:00:00 2001
From 3439b4e5a1fd05c4fb68491c3814de2581e8a5aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 20 Dec 2016 02:36:57 +0100
Subject: bcrypt: Add internal fallback implementation for hash calculations.
@@ -17,7 +17,7 @@ Subject: bcrypt: Add internal fallback implementation for hash calculations.
create mode 100644 dlls/bcrypt/sha512.c
diff --git a/dlls/bcrypt/Makefile.in b/dlls/bcrypt/Makefile.in
index ef9d7ea..38753bd 100644
index ef9d7ead6bc..f54fc5cd482 100644
--- a/dlls/bcrypt/Makefile.in
+++ b/dlls/bcrypt/Makefile.in
@@ -4,6 +4,9 @@ IMPORTLIB = bcrypt
@@ -27,13 +27,13 @@ index ef9d7ea..38753bd 100644
- bcrypt_main.c
+ bcrypt_main.c \
+ sha256.c \
+ sha512.c \
+ sha384.c
+ sha384.c \
+ sha512.c
RC_SRCS = version.rc
diff --git a/dlls/bcrypt/bcrypt_internal.h b/dlls/bcrypt/bcrypt_internal.h
new file mode 100644
index 0000000..8a8f6d1
index 00000000000..8a8f6d170c4
--- /dev/null
+++ b/dlls/bcrypt/bcrypt_internal.h
@@ -0,0 +1,79 @@
@@ -117,7 +117,7 @@ index 0000000..8a8f6d1
+
+#endif /* __BCRYPT_INTERNAL_H */
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index af2314a..9441cf0 100644
index 1f22063dbda..fbaece21f47 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -36,6 +36,8 @@
@@ -251,7 +251,7 @@ index af2314a..9441cf0 100644
diff --git a/dlls/bcrypt/sha256.c b/dlls/bcrypt/sha256.c
new file mode 100644
index 0000000..48c4a48
index 00000000000..48c4a48d031
--- /dev/null
+++ b/dlls/bcrypt/sha256.c
@@ -0,0 +1,169 @@
@@ -426,7 +426,7 @@ index 0000000..48c4a48
+}
diff --git a/dlls/bcrypt/sha384.c b/dlls/bcrypt/sha384.c
new file mode 100644
index 0000000..81e7e08
index 00000000000..81e7e08fd07
--- /dev/null
+++ b/dlls/bcrypt/sha384.c
@@ -0,0 +1,41 @@
@@ -473,7 +473,7 @@ index 0000000..81e7e08
+}
diff --git a/dlls/bcrypt/sha512.c b/dlls/bcrypt/sha512.c
new file mode 100644
index 0000000..fdd7867
index 00000000000..fdd7867eab7
--- /dev/null
+++ b/dlls/bcrypt/sha512.c
@@ -0,0 +1,191 @@
@@ -669,5 +669,5 @@ index 0000000..fdd7867
+ }
+}
--
2.9.0
2.11.0

View File

@@ -1,4 +1,4 @@
From 9331e2a78e8ec0ba29ed1041a9f851ffd39cc249 Mon Sep 17 00:00:00 2001
From 3dc21336baced97a110773ac9e72db210a56af82 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 20 Dec 2016 03:59:19 +0100
Subject: bcrypt: Implement BCryptDuplicateHash.
@@ -7,10 +7,11 @@ FIXME: Should we check for NULL pointers?
---
dlls/bcrypt/bcrypt.spec | 2 +-
dlls/bcrypt/bcrypt_main.c | 18 ++++++++++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
dlls/ncrypt/ncrypt.spec | 2 +-
3 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/dlls/bcrypt/bcrypt.spec b/dlls/bcrypt/bcrypt.spec
index 962953e..9ecd21d 100644
index 962953e509b..9ecd21d767c 100644
--- a/dlls/bcrypt/bcrypt.spec
+++ b/dlls/bcrypt/bcrypt.spec
@@ -11,7 +11,7 @@
@@ -23,7 +24,7 @@ index 962953e..9ecd21d 100644
@ stdcall BCryptEncrypt(ptr ptr long ptr ptr long ptr long ptr long)
@ stdcall BCryptEnumAlgorithms(long ptr ptr long)
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index 3e2b22d..944a9ea 100644
index 4f09948096c..3eb0135b37c 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -672,6 +672,24 @@ end:
@@ -51,6 +52,19 @@ index 3e2b22d..944a9ea 100644
NTSTATUS WINAPI BCryptDestroyHash( BCRYPT_HASH_HANDLE handle )
{
struct hash *hash = handle;
diff --git a/dlls/ncrypt/ncrypt.spec b/dlls/ncrypt/ncrypt.spec
index 60b7eb37075..1a78853bf49 100644
--- a/dlls/ncrypt/ncrypt.spec
+++ b/dlls/ncrypt/ncrypt.spec
@@ -13,7 +13,7 @@
@ stdcall BCryptDestroyHash(ptr) bcrypt.BCryptDestroyHash
@ stdcall BCryptDestroyKey(ptr) bcrypt.BCryptDestroyKey
@ stub BCryptDestroySecret
-@ stub BCryptDuplicateHash
+@ stdcall BCryptDuplicateHash(ptr ptr ptr long long) bcrypt.BCryptDuplicateHash
@ stub BCryptDuplicateKey
@ stdcall BCryptEncrypt(ptr ptr long ptr ptr long ptr long ptr long) bcrypt.BCryptEncrypt
@ stdcall BCryptEnumAlgorithms(long ptr ptr long) bcrypt.BCryptEnumAlgorithms
--
2.9.0
2.11.0

View File

@@ -1,16 +1,16 @@
From 8554c6eea279baa21e10d3b742e1c62a732bbe69 Mon Sep 17 00:00:00 2001
From 026aff5aa7c66fdc8e8c724dc73217585e8edf91 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 21 Dec 2016 04:09:03 +0100
Subject: bcrypt: Fix handling of padding when input size equals block size for
AES.
---
dlls/bcrypt/bcrypt_main.c | 13 +++++++------
dlls/bcrypt/bcrypt_main.c | 14 ++++++++------
dlls/bcrypt/tests/bcrypt.c | 33 ++++++++++++++++++++++++++++++++-
2 files changed, 39 insertions(+), 7 deletions(-)
2 files changed, 40 insertions(+), 7 deletions(-)
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index 944a9ea..f97638f 100644
index 944a9ea..f53ea1c 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -997,11 +997,12 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
@@ -31,12 +31,13 @@ index 944a9ea..f97638f 100644
if (!output) return STATUS_SUCCESS;
if (output_len < *ret_len) return STATUS_BUFFER_TOO_SMALL;
@@ -1014,7 +1015,7 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
@@ -1014,7 +1015,8 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
src += key->block_size;
dst += key->block_size;
}
- if (bytes_left)
+ if (bytes_left || (flags & BCRYPT_BLOCK_PADDING))
+
+ if (flags & BCRYPT_BLOCK_PADDING)
{
if (!(buf = HeapAlloc( GetProcessHeap(), 0, key->block_size ))) return STATUS_NO_MEMORY;
memcpy( buf, src, bytes_left );

View File

@@ -20,7 +20,7 @@ index f97638f..653301b 100644
+ UCHAR *buf, *src, *dst;
NTSTATUS status;
FIXME( "%p, %p, %u, %p, %p, %u, %p, %u, %p, %08x\n", handle, input, input_len,
TRACE( "%p, %p, %u, %p, %p, %u, %p, %u, %p, %08x\n", handle, input, input_len,
@@ -1052,11 +1054,44 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
if ((status = key_set_params( key, iv, iv_len ))) return status;

View File

@@ -0,0 +1,39 @@
From f7dc69131cc016917b31c5deedf97da31b11c597 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 26 Dec 2016 02:43:39 +0100
Subject: bcrypt: Fix use-after-free in key_init.
---
dlls/bcrypt/bcrypt_main.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index 09bf6c30..a9006a4 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -791,6 +791,8 @@ static ULONG get_block_size( enum alg_id alg )
static NTSTATUS key_init( struct key *key, enum alg_id id, UCHAR *secret, ULONG secret_len )
{
+ UCHAR *buffer;
+
if (!libgnutls_handle) return STATUS_INTERNAL_ERROR;
switch (id)
@@ -804,10 +806,12 @@ static NTSTATUS key_init( struct key *key, enum alg_id id, UCHAR *secret, ULONG
}
if (!(key->block_size = get_block_size( id ))) return STATUS_INVALID_PARAMETER;
+ if (!(buffer = HeapAlloc( GetProcessHeap(), 0, secret_len ))) return STATUS_NO_MEMORY;
+ memcpy( buffer, secret, secret_len );
key->alg_id = id;
key->handle = 0; /* initialized on first use */
- key->secret = secret;
+ key->secret = buffer;
key->secret_len = secret_len;
return STATUS_SUCCESS;
--
2.9.0

View File

@@ -0,0 +1,83 @@
From 873d431347aa25effc70e47566e562c122a5edc8 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 26 Dec 2016 04:23:31 +0100
Subject: bcrypt: Handle NULL pointers in BCryptDuplicateHash and add tests.
---
dlls/bcrypt/bcrypt_main.c | 1 +
dlls/bcrypt/tests/bcrypt.c | 26 +++++++++++++++++++++++++-
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index a9006a4..d1516cc 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -681,6 +681,7 @@ NTSTATUS WINAPI BCryptDuplicateHash( BCRYPT_HASH_HANDLE handle, BCRYPT_HASH_HAND
TRACE( "%p, %p, %p, %u, %u\n", handle, handle_copy, object, object_count, flags );
if (!hash_orig || hash_orig->hdr.magic != MAGIC_HASH) return STATUS_INVALID_HANDLE;
+ if (!handle_copy) return STATUS_INVALID_PARAMETER;
if (!(hash_copy = HeapAlloc( GetProcessHeap(), 0, sizeof(*hash_copy) )))
return STATUS_NO_MEMORY;
diff --git a/dlls/bcrypt/tests/bcrypt.c b/dlls/bcrypt/tests/bcrypt.c
index 997b298..bfe3a7e 100644
--- a/dlls/bcrypt/tests/bcrypt.c
+++ b/dlls/bcrypt/tests/bcrypt.c
@@ -33,6 +33,7 @@ static NTSTATUS (WINAPI *pBCryptCreateHash)(BCRYPT_ALG_HANDLE, BCRYPT_HASH_HANDL
ULONG, ULONG);
static NTSTATUS (WINAPI *pBCryptHash)(BCRYPT_ALG_HANDLE, UCHAR *, ULONG, UCHAR *, ULONG, UCHAR *, ULONG);
static NTSTATUS (WINAPI *pBCryptHashData)(BCRYPT_HASH_HANDLE, PUCHAR, ULONG, ULONG);
+static NTSTATUS (WINAPI *pBCryptDuplicateHash)(BCRYPT_HASH_HANDLE, BCRYPT_HASH_HANDLE *, UCHAR *, ULONG, ULONG);
static NTSTATUS (WINAPI *pBCryptFinishHash)(BCRYPT_HASH_HANDLE, PUCHAR, ULONG, ULONG);
static NTSTATUS (WINAPI *pBCryptDestroyHash)(BCRYPT_HASH_HANDLE);
static NTSTATUS (WINAPI *pBCryptGenRandom)(BCRYPT_ALG_HANDLE, PUCHAR, ULONG, ULONG);
@@ -173,7 +174,7 @@ static void test_sha1(void)
static const char expected[] = "961fa64958818f767707072755d7018dcd278e94";
static const char expected_hmac[] = "2472cf65d0e090618d769d3e46f0d9446cf212da";
BCRYPT_ALG_HANDLE alg;
- BCRYPT_HASH_HANDLE hash;
+ BCRYPT_HASH_HANDLE hash, hash2;
UCHAR buf[512], buf_hmac[1024], sha1[20], sha1_hmac[20];
ULONG size, len;
char str[41];
@@ -260,6 +261,28 @@ static void test_sha1(void)
test_hash_length(hash, 20);
test_alg_name(hash, "SHA1");
+ ret = pBCryptDuplicateHash(NULL, &hash2, NULL, 0, 0);
+ ok(ret == STATUS_INVALID_HANDLE, "got %08x\n", ret);
+
+ ret = pBCryptDuplicateHash(hash, NULL, NULL, 0, 0);
+ ok(ret == STATUS_INVALID_PARAMETER, "got %08x\n", ret);
+
+ hash2 = (void *)0xdeadbeef;
+ ret = pBCryptDuplicateHash(hash, &hash2, NULL, 0, 0);
+ ok(ret == STATUS_SUCCESS || broken(ret == STATUS_INVALID_PARAMETER) /* < Win 7 */, "got %08x\n", ret);
+
+ if (ret == STATUS_SUCCESS)
+ {
+ memset(sha1_hmac, 0, sizeof(sha1_hmac));
+ ret = pBCryptFinishHash(hash2, sha1_hmac, sizeof(sha1_hmac), 0);
+ ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
+ format_hash( sha1_hmac, sizeof(sha1_hmac), str );
+ ok(!strcmp(str, expected_hmac), "got %s\n", str);
+
+ ret = pBCryptDestroyHash(hash2);
+ ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
+ }
+
memset(sha1_hmac, 0, sizeof(sha1_hmac));
ret = pBCryptFinishHash(hash, sha1_hmac, sizeof(sha1_hmac), 0);
ok(ret == STATUS_SUCCESS, "got %08x\n", ret);
@@ -1179,6 +1202,7 @@ START_TEST(bcrypt)
pBCryptCreateHash = (void *)GetProcAddress(module, "BCryptCreateHash");
pBCryptHash = (void *)GetProcAddress(module, "BCryptHash");
pBCryptHashData = (void *)GetProcAddress(module, "BCryptHashData");
+ pBCryptDuplicateHash = (void *)GetProcAddress(module, "BCryptDuplicateHash");
pBCryptFinishHash = (void *)GetProcAddress(module, "BCryptFinishHash");
pBCryptDestroyHash = (void *)GetProcAddress(module, "BCryptDestroyHash");
pBCryptGenRandom = (void *)GetProcAddress(module, "BCryptGenRandom");
--
2.9.0

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