Compare commits

...

225 Commits

Author SHA1 Message Date
Sebastian Lackner
154a80f8be Release 2.10-3 (macOS preloader fixes). 2017-06-18 18:21:12 +02:00
Sebastian Lackner
dfdeb2e61a loader-OSX_Preloader: Add PAGEZERO section for wine-preloader executable.
For wine64-preloader we already do that, but apparently there are also kernel
versions which enforce a PAGEZERO section for 32-bit executables.

(cherry picked from commit 907dc4eae6)
2017-06-17 21:03:13 +02:00
Sebastian Lackner
abb1f3201c Release 2.10-2 (macOS preloader fixes). 2017-06-16 00:50:52 +02:00
Sebastian Lackner
0ef6e01258 loader-OSX_Preloader: Fall back to MAP_FIXED if address hint is ignored.
This should get rid of preloader warnings on old versions of macOS.
Thanks to Gijs Vermeulen for help with debugging and testing this patch.

Ideally, we would like to use vm_allocate, but since the preloader runs
very early during the startup of the process, we don't have all required
libc functions available. Also, we don't want to reimplement it ourself,
which would be very unreliable in practice.

For now, lets just use mincore() to check if there are any other pages
mapped within the area, and then fallback to MAP_FIXED.

(cherry picked from commit f254a73e66)
2017-06-15 18:52:12 +02:00
Sebastian Lackner
256e818da5 loader-OSX_Preloader: Temporarily map address ranges needed for Wine builtin DLLs.
(cherry picked from commit 463f2b02c9)
2017-06-15 05:31:20 +02:00
Sebastian Lackner
bc32032f02 loader-OSX_Preloader: Allocate pagezero for main wine binary.
This change should fix compatibility with old versions of macOS.
Thanks to Gijs Vermeulen for help with debugging and testing this patch.

Old versions of libsystem_c.dylib crash while running initializers when
the application does not contain a PAGEZERO section. This is probably
caused by an incorrect comparison against NULL instead of (void *)-1.

Unfortunately, when we just add a PAGEZERO section, we trigger the next
bug - no matter if we actually use the page at address (void *)0 or not,
it will not be used because the relocation code tries to find a memory
hole of size (highAddr - lowAddr) ~ 2GB.

We might be able to workaround this issue by manually reordering the
sections in the main executable, but for now lets just drop the fixed
image base. Please note that this introduces a risk of conflicts with
builtin DLLs, which will be resolved in the next patch.

(cherry picked from commit e9daff5bc8)
2017-06-15 05:31:05 +02:00
Sebastian Lackner
199b98a78b patchinstall.sh: Add workaround for mktemp on macOS <= 10.10.
(cherry picked from commit ecdf44fe29)
2017-06-15 05:30:50 +02:00
Sebastian Lackner
c0525850fc patchinstall.sh: Do not use 'readlink -f' to improve compatibility with macOS.
(cherry picked from commit 3a7c5ae711)
2017-06-15 05:30:33 +02:00
Sebastian Lackner
d4aa71ae9d loader-OSX_Preloader: Fix compile error with old SDK versions.
(cherry picked from commit 3fab2fbed2)
2017-06-15 05:30:13 +02:00
Sebastian Lackner
ce25cba7d0 Release 2.10. 2017-06-13 11:16:10 +02:00
Sebastian Lackner
d7712b4819 advapi32-Performance_Counters: Fix a handle leak (thanks Dmitry). 2017-06-13 10:32:55 +02:00
Sebastian Lackner
3c5f207230 Added patch to implement support for querying performance counters data. 2017-06-13 02:12:34 +02:00
Sebastian Lackner
af8052189f Added revert of patch which assumes a 1-to-1 axes mapping when no axes match. 2017-06-12 20:10:02 +02:00
Sebastian Lackner
22731b5aaa Added patch to fix handling of cursor position clipping. 2017-06-12 19:38:36 +02:00
Sebastian Lackner
7c8ec26efc ntdll-User_Shared_Data: Update patchset. 2017-06-12 17:01:33 +02:00
Sebastian Lackner
fbd1870547 dxdiagn-Display_Information: Add reference to additional bug report. 2017-06-12 16:51:31 +02:00
Sebastian Lackner
05a45207e2 server-Debug_Registers: Add reference to bug report. 2017-06-12 16:49:51 +02:00
Sebastian Lackner
ee5545a45f Added patch to fix holes in ELF mappings. 2017-06-12 16:45:10 +02:00
Sebastian Lackner
8881e4710a Added patch to prevent a possible nullpointer dereference in comctl32 tests. 2017-06-12 03:34:50 +02:00
Sebastian Lackner
0c5e30ba40 Compiler_Warnings: Update patchset. 2017-06-12 03:34:50 +02:00
Sebastian Lackner
c2c1e41e3c Added patch to expand environment strings in ShellExecute. 2017-06-12 03:34:50 +02:00
Sebastian Lackner
645ed054f2 Added patch to return MSIDBSTATE_ERROR when MsiGetDatabaseState is called from a custom action. 2017-06-12 03:34:38 +02:00
Sebastian Lackner
b5d451ae12 Added patch to implement preloader for Mac OS. 2017-06-12 00:50:05 +02:00
Sebastian Lackner
5392d42292 Added patches to fix two minor issues related to linked lists. 2017-06-11 02:46:31 +02:00
Sebastian Lackner
05f510a1be Added patch to simulate a more realistic kernel environment in ntoskrnl/winedevice. 2017-06-10 20:24:36 +02:00
Sebastian Lackner
630ff35489 Added patches to implement NtBuildNumber and ExInitializeNPagedLookasideList. 2017-06-10 16:35:54 +02:00
Sebastian Lackner
25e345194d Rebase against e0e4f9bbcda1243b9317dbfbeeff84a18b4e855c. 2017-06-10 00:47:39 +02:00
Sebastian Lackner
38cdf5d3f4 gdi32-Symbol_Truetype_Font: Update definition file. 2017-06-06 10:51:49 +02:00
Sebastian Lackner
d0ac86031a Rebase against e4c9a2ec81b8029876d588e09587db40ab65ee69. 2017-06-06 10:12:28 +02:00
Sebastian Lackner
6ca029a4f6 Rebase against e5733e7cd40b41bb4d8c0409e9ed5be8fe6d5618. 2017-06-05 13:00:54 +02:00
Sebastian Lackner
5d672b2839 Rebase against 6c752aaf8da225365b2bdbbf3c43d41afd4d1344. 2017-06-05 11:03:20 +02:00
Sebastian Lackner
e61bbfd48a Added patch to avoid conversion from unaligned pointer to M128A. 2017-06-04 23:24:22 +02:00
Sebastian Lackner
f5671acfdd Rebase against 1fbb661ed1745bdfdcd1287c730f63503ee3f13f.
This also merges several improvements to avoid compiler warnings with GCC 7.

FIXME: There seems to be a regression (random crashes) during prefix shutdown,
       needs further debugging.
2017-06-04 23:14:03 +02:00
Sebastian Lackner
ac2c2ffdb8 Rebase against 06eceb3af2d56f158dab2db5a7bc768cc2b1c391. 2017-05-31 07:06:29 +02:00
Sebastian Lackner
907f73aa4b Release 2.9. 2017-05-29 15:54:33 +02:00
Sebastian Lackner
76c2635a7a user32-Mouse_Message_Hwnd: Add back a missing return statement (thanks Dmitry). 2017-05-29 12:25:31 +02:00
Sebastian Lackner
5d31795ffc Added patch to implement support for layered window regions. 2017-05-29 08:46:07 +02:00
Sebastian Lackner
5cc0023094 wine.inf-Performance: Add 'Counters' to the perflib key as an alias for 'Counter'. 2017-05-29 03:40:40 +02:00
Sebastian Lackner
6e372d0550 Added patch to handle /dontskip parameter in dxdiag. 2017-05-29 01:12:35 +02:00
Sebastian Lackner
4d5cc8b76f Added patch to check for 'Brian Paul' to detect Mesa gl_vendor. 2017-05-28 23:34:20 +02:00
Sebastian Lackner
d7d4fde17e winebuild-Fake_Dlls: Do not use get_alignment for .balign instructions.
Spotted by Michael MĂĽller.
2017-05-28 21:52:48 +02:00
Sebastian Lackner
033c4b149f ntdll-NtQueryVirtualMemory: Skip get_dll_info wineserver call if address does not have VPROT_IMAGE permissions. 2017-05-28 16:16:15 +02:00
Sebastian Lackner
f957d2a812 Added patches to silence two noisy d3d11 FIXMEs. 2017-05-28 15:56:46 +02:00
Sebastian Lackner
7e80ff15e2 wined3d-QUERY_Stubs: Update patchset and add implementation for WINED3D_QUERY_TYPE_PIPELINE_STATISTICS. 2017-05-28 15:56:45 +02:00
Sebastian Lackner
43973275f2 ntdll-NtQueryVirtualMemory: Update patchset and return proper Nt paths. 2017-05-28 15:55:40 +02:00
Sebastian Lackner
70d09b1977 Added patch to implement opening files through nt device paths. 2017-05-27 18:47:06 +02:00
Sebastian Lackner
527b456839 ntoskrnl-Stubs: Remove some invalid Fixes lines. 2017-05-27 18:20:53 +02:00
Sebastian Lackner
cf4e195b49 Added patch to implement ntoskrnl.ExInterlockedPopEntrySList. 2017-05-27 18:02:35 +02:00
Sebastian Lackner
b7f1c682f3 Added patch to fix crash when a device driver segfaults during an open file request. 2017-05-27 17:46:03 +02:00
Sebastian Lackner
1a5a9b3087 gdi32-MultiMonitor: Update patchset and return more reasonable display DeviceID. 2017-05-27 04:23:12 +02:00
Sebastian Lackner
e5fb1dda8d Added patch to pass correct index to shader_glsl_ffp_vertex_lighting_footer. 2017-05-27 03:25:08 +02:00
Sebastian Lackner
27d1ed8f59 winebuild-Fake_Dlls: Use .balign instead of .fill.
Also remove the ntdll-Interrupt-0x2e dependency, which is no longer necessary.
2017-05-26 10:07:56 +02:00
Sebastian Lackner
857e9c1cd4 Rebase against 799230c78ab102fa0034cb4477ce1be78c456a87. 2017-05-26 04:26:33 +02:00
Sebastian Lackner
0a60add605 winebuild-Fake_Dlls: Merge several further improvements. 2017-05-25 21:59:41 +02:00
Sebastian Lackner
d36701371e Added patch with stub for ntdll.NtContinue. 2017-05-25 05:57:44 +02:00
Sebastian Lackner
b2904214bb winebuild-Fake_Dlls: Added patch to fix relocation information in fake dlls. 2017-05-25 05:52:41 +02:00
Michael MĂĽller
871cee39d0 winebuild-Fake_Dlls: Fill alignment with zero bytes. 2017-05-25 05:52:41 +02:00
Sebastian Lackner
0c46d1e8a2 Rebase against 8967e87c8a890aed7a81051c2d372f065e825bb2. 2017-05-25 03:05:27 +02:00
Sebastian Lackner
91f6a8ad80 Rebase against ef267f115f76a3041e0da4a0f0dbd7ffb4a022e1. 2017-05-25 01:24:35 +02:00
Sebastian Lackner
8b1d3d07ab Rebase against b8a8e1bde9382897927945ec0b58b8a2fcfcfe59. 2017-05-24 23:55:00 +02:00
Sebastian Lackner
2ca6aebfaa Rebase against 3f01ab4c39ffa50e26916a5f33d82dec1a2e42dc. 2017-05-20 00:45:45 +02:00
Sebastian Lackner
81571a4cb5 Rebase against 53bf72e266532f2f0533a0dfd7e90a25d7b6d901. 2017-05-19 22:31:19 +02:00
Sebastian Lackner
51dc575ef3 Rebase against 9baceabb88e2aeb90a32bb5f6923107904ed58ea. 2017-05-18 05:32:56 +02:00
Sebastian Lackner
73573b1dff kernel32-MoveFile: Fix a regression when copying addon to cache directory. 2017-05-17 16:45:13 +02:00
Sebastian Lackner
142cc2eda5 Rebase against 66c7b37a9819195d40f5ab053268548c4370fb06. 2017-05-17 01:00:41 +02:00
Sebastian Lackner
ebabcd69b5 Rebase against be12c5bc4f189901541fdca41da267f8a0ef873d. 2017-05-16 23:01:26 +02:00
Sebastian Lackner
20d1f21514 Release 2.8. 2017-05-16 14:17:16 +02:00
Sebastian Lackner
7ad2ee4c60 winebuild-Fake_Dlls: Avoid conflict with 16-bit code. 2017-05-16 04:52:55 +02:00
Sebastian Lackner
d00088e0fa winebuild-Fake_Dlls: Try to fix build failure on OSX. 2017-05-16 03:25:43 +02:00
Sebastian Lackner
633cceca94 user32-GetAutoRotationState: Remove definition file. 2017-05-16 01:31:39 +02:00
Sebastian Lackner
46006c692a Rename windowscodecs-Metadata -> windowscodecs-MetadataQueryParser. 2017-05-16 00:26:55 +02:00
Sebastian Lackner
d56994dbfa Added patches with multiple improvements for propsys functions. 2017-05-16 00:22:58 +02:00
Sebastian Lackner
5e70613512 Added patch to implement a basic security property tab. 2017-05-15 22:51:33 +02:00
Sebastian Lackner
6a14f80fdc Added patch with various improvements for fake dlls. 2017-05-15 21:07:42 +02:00
Sebastian Lackner
5d38a0fed0 ntdll-User_Shared_Data: Fix test failures on WinXP. 2017-05-14 00:48:30 +02:00
Sebastian Lackner
8748402001 Rebase against 4eaaf06ce4e5d7424eec2cf303c8256610544b39. 2017-05-13 01:14:10 +02:00
Sebastian Lackner
171d05fffe wined3d-CSMT_Main: Get rid of unnecessary wait. 2017-05-12 03:47:26 +02:00
Sebastian Lackner
975205155e Rebase against b77688102a84e1c7b7278340c46f53db3e1cda00. 2017-05-12 00:36:30 +02:00
Sebastian Lackner
d6c145fbf5 server-Debug_Registers: Remove bug reference.
The issue is mentioned in bug 32515, but Steam cache
validation still fails with this patch applied.
2017-05-11 03:36:48 +02:00
Sebastian Lackner
3207980517 Rebase against 0647abc5071913506e681bfc5239f9a6078dca54. 2017-05-11 01:46:17 +02:00
Sebastian Lackner
1bbe50aae8 Rebase against 8ef79b023a06f00ca6ab37afb8089d358b277d73. 2017-05-10 03:29:09 +02:00
Sebastian Lackner
bb180d38cc d3d11-Deferred_Context: Merge two patches. 2017-05-09 19:55:51 +02:00
Sebastian Lackner
c542f2432d Rebase against b6a4b2f593503a105dde01e7bd11ffdde243117a. 2017-05-09 05:33:36 +02:00
Sebastian Lackner
a36a97233a wined3d-CSMT_Main: Merge two patches. 2017-05-08 13:07:44 +02:00
Sebastian Lackner
f8e955a95a ntdll-User_Shared_Data: Add a missing CDECL. 2017-05-06 20:14:20 +02:00
Sebastian Lackner
d966bece72 Added patch to implement some additional windowscodecs metadata functions. 2017-05-06 17:04:02 +02:00
Sebastian Lackner
1447b56eeb Added patch to reset debug registers when creating threads. 2017-05-06 02:13:58 +02:00
Sebastian Lackner
afe018692b Added patch to fix some test failures in d3dx9_36/math tests. 2017-05-06 02:08:18 +02:00
Sebastian Lackner
52b5c90303 Rebase against 9f55292085392579568ff81b8adb926b32a8d99a. 2017-05-06 02:06:45 +02:00
Sebastian Lackner
4a4ebec642 dxva2-Video_Decoder: Remove dependency on winecfg-Staging patchset. 2017-05-05 20:34:33 +02:00
Sebastian Lackner
35ea3890a7 Add a separate script to plot patchset dependency graph. 2017-05-05 20:33:54 +02:00
Sebastian Lackner
26438ad74c Added patch to update user_shared_data timers. 2017-05-05 13:37:34 +02:00
Sebastian Lackner
31212d2845 Rebase against 10db51d5c26f0a71956989ecff83da90f4d94fda. 2017-05-05 02:26:52 +02:00
Sebastian Lackner
a08b6b2b62 Added patch for initial implementation of advapi32.BuildSecurityDescriptorW. 2017-05-05 00:25:14 +02:00
Sebastian Lackner
9985fe9035 Added patch to implement TokenIntegrityLevel stub in NtSetInformationToken. 2017-05-04 21:31:38 +02:00
Sebastian Lackner
3aa965e97f Added patch to implement TokenLogonSid stub in NtQueryInformationToken. 2017-05-04 21:27:41 +02:00
Sebastian Lackner
2e479e0954 Added patch to implement semi-stub for ntdll.NtCreateThreadEx. 2017-05-04 21:24:17 +02:00
Sebastian Lackner
9fe12a2175 Added patch to avoid crash if context_reacquire is called with NULL context. 2017-05-04 02:56:03 +02:00
Sebastian Lackner
d7c0a975ea Rebase against 8753a1b271795d2f977b41a814de7e4ace780d2e. 2017-05-04 02:13:14 +02:00
Sebastian Lackner
eb4a245bbb Rebase against b1203af6ba44ff8858ee9ca50fc05f4f3f633892. 2017-05-03 05:45:47 +02:00
Sebastian Lackner
5282f297be bcrypt-Improvements: Fix BCryptEncrypt with AES_GCM and no input and no output. 2017-05-02 18:36:51 +02:00
Sebastian Lackner
1446da2c50 fonts-Tahoma: Regenerate tahoma.ttf with ancient fontconfig.
To keep the changes small and to ensure the resulting TTF file
is better compatible with Windows.
2017-05-02 18:36:25 +02:00
Sebastian Lackner
2db34eca39 Rebase against 7cd7f14696dc3fb7aa41ef253ad144d458304a28. 2017-05-02 12:57:50 +02:00
Sebastian Lackner
d80c4a83fd Release 2.7. 2017-05-02 04:51:49 +02:00
Sebastian Lackner
0c62a31ae7 Added patch for U+FB01 and U+FB02 glyphs in Tahoma font. 2017-05-02 03:19:58 +02:00
Sebastian Lackner
6acc999e64 windowscodecs-TIFF_Support: Fix pixel format descriptors. 2017-05-02 02:22:42 +02:00
Sebastian Lackner
e0ec571af4 dmusic-SynthPort_IKsControl: Remote a Fixes line. 2017-05-02 01:27:48 +02:00
Sebastian Lackner
2c4db4ada1 Added patch to fix Param2 in SPFILENOTIFY_FILEINCABINET handler. 2017-05-02 01:26:37 +02:00
Sebastian Lackner
46bcbf913f Added patch to fix test failure in dmloader tests. 2017-05-01 19:50:27 +02:00
Sebastian Lackner
1d7d9cf626 kernel32-Locale_Definitions: Disable patchset which causes a test failure. 2017-05-01 18:34:32 +02:00
Sebastian Lackner
4e8721c714 ntdll-ProcessImageFileNameWin32: Fix test failures. 2017-05-01 18:20:51 +02:00
Sebastian Lackner
affad837a0 Rebase against 07cf14dc928a1a00baecbbc7ca5a6f3fe680238c. 2017-04-28 23:28:40 +02:00
Sebastian Lackner
c00520d3f8 Added patch to fix handling of ShowWindow when window is already visible. 2017-04-28 15:30:12 +02:00
Sebastian Lackner
bf3ff21ed7 Rebase against ae600c0b2c5b63d0c32a19f44629c204d1a0fc51. 2017-04-28 04:10:08 +02:00
Sebastian Lackner
18b192b7bd kernel32-Named_Pipe: Comment Fixes lines. 2017-04-27 01:26:18 +02:00
Sebastian Lackner
d3c3d2ab96 Rebase against 6f99cf01e1b88c9bb09fe6b9bff3443514db5ae2. 2017-04-27 01:22:20 +02:00
Sebastian Lackner
229bb38973 Rebase against 89ef7b59f548a76960b2278d819a8f915c81e132. 2017-04-26 04:01:25 +02:00
Sebastian Lackner
af6b4ace35 Rebase against e49feb63f489141c08a967a9c47930559e1de4f7. 2017-04-25 03:08:33 +02:00
Sebastian Lackner
e3e7950f4f kernel32-SetFileInformationByHandle: Remove patch with unnecessary include file change. 2017-04-24 16:50:23 +02:00
Sebastian Lackner
b6c2991af1 iexplore-Revert_ProductVersion: Remove deprecated patchset. 2017-04-24 16:31:33 +02:00
Sebastian Lackner
447795d20e wined3d-Revert_Pixel_Center_Offset: Remove deprecated patchset. 2017-04-24 02:27:04 +02:00
Sebastian Lackner
8fd38e80cd ntdll-Virtual_Memory_Stack: Delete disabled patchset. 2017-04-24 00:37:49 +02:00
Sebastian Lackner
7492968519 ntdll-Syscall_Wrappers: Delete disabled patchset. 2017-04-24 00:36:03 +02:00
Sebastian Lackner
c0304d7976 Exagear: Delete disabled patchset. 2017-04-24 00:18:25 +02:00
Sebastian Lackner
075da187c7 Rebase against cced5dfbde8b685022dd74e666f8ad4ea8473453. 2017-04-22 14:57:30 +02:00
Sebastian Lackner
89777bdb23 Rebase against 6c7760f2175e241b330cde0a902c96d9007922e0. 2017-04-21 13:20:03 +02:00
Sebastian Lackner
bd070a400c Rebase against f7402accc40b66140be4d27c5ad1b2fee8532dfc. 2017-04-20 02:16:00 +02:00
Sebastian Lackner
a65b6fa780 Release 2.6. 2017-04-19 10:54:39 +02:00
Sebastian Lackner
92bc06bd9e winecfg-Unmounted_Devices: Fix another compile issue on OSX. 2017-04-19 04:48:29 +02:00
Sebastian Lackner
2b4120187b Compiler_Warnings: Fix compililation error on OSX. 2017-04-19 04:04:24 +02:00
Sebastian Lackner
5dcd52a67f wined3d-CSMT_Main: Reenable patchset. 2017-04-19 01:34:24 +02:00
Sebastian Lackner
10837badd4 wined3d-Accounting: Do not use context on the main thread. 2017-04-17 00:43:21 +02:00
Sebastian Lackner
c9b2336f64 Added patch to implement support for recent OSMesa versions. 2017-04-16 19:19:34 +02:00
Sebastian Lackner
a06d982751 winecfg-Unmounted_Devices: Avoid access violation when autodetecting devices in winecfg. 2017-04-16 17:54:19 +02:00
Sebastian Lackner
e963b417b3 Added patches to fix error handling issues in wined3d. 2017-04-14 17:46:52 +02:00
Sebastian Lackner
079da46f96 Added patch to fix compilation with recent versions of gcc. 2017-04-14 16:02:12 +02:00
Sebastian Lackner
3003efacdb Rebase against 709935314458bd0ce27aab3986ae98cc556cb663. 2017-04-14 15:28:19 +02:00
Sebastian Lackner
14acf51a2d Rebase against aa1580398e4c9eda851d475213e07d865d9238bd. 2017-04-13 11:52:28 +02:00
Sebastian Lackner
830a8b9975 Rebase against d6557e812984e010a989a3360039453eb978bd12. 2017-04-13 11:06:17 +02:00
Sebastian Lackner
4a75337774 Rebase against 9e35dd15454be28c487b0f1bebefbbe530b2aca4. 2017-04-12 09:52:27 +02:00
Sebastian Lackner
b113596b6c Rebase against 692656467729c5548c45244aa05ca946620afa72. 2017-04-12 07:03:43 +02:00
Sebastian Lackner
e5d2247213 Rebase against 61a1a266faa9fa7c959136b0ab0b5d7e01326878. 2017-04-11 05:15:20 +02:00
Sebastian Lackner
fbc61357d3 Rebase against 0128e1a18f25848e6f47146580a8f0db69687dd6. 2017-04-10 22:39:05 +02:00
Sebastian Lackner
d06996cabd Rebase against 35ca862025fa14065d4ebed761783de225cb6690. 2017-04-10 18:41:57 +02:00
Sebastian Lackner
e4ac3ea735 Rebase against 8b1737c0fdf1d3d905bea281d9241f1f48f333e9. 2017-04-10 07:36:39 +02:00
Sebastian Lackner
25bd49ecb6 Release 2.5. 2017-04-09 19:53:42 +02:00
Sebastian Lackner
7a2c0d03d7 Added patch for dummy apiset in PEB struct. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
c081ded2be Added patch to add missing initialization in create_glyphrunanalysis. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
c372796653 kernel32-SetFileCompletionNotificationModes: Update patchset for server-side named pipes. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
8568fe0a24 oleaut32-OleLoadPicture: Update patchset and fix a regression. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
6897c8b67b Added patch to implement and use hash links when looking up LDR module. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
0844f36738 Added patch to implement stub for ntdll.RtlGetUnloadEventTraceEx. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
b9a9f51c59 Added patch to implement NtSuspendProcess and NtResumeProcess. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
2dd39323aa Added patch to implement more stub classes in NtQueryInformationJobObject. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
4f7c521e11 Added patch to implement FileNameInformation in NtQueryInformationFile for named pipes. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
a16c4ffd33 Added patch to return failure when handling http redirect without hostname. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
35d020002f README.md: Update link to installation instructions. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
a781d341a5 Rebase against 64e4a03a92498abea428dc567372f3996fa9dc3a. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
3a8de0f3f4 Rebase against 63bcfa3354edd910ee52b8134af191f7a774b701. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
e2750d967a Rebase against 42ed54b5d8e67aeb647d5a4fc8af7c8962285c7f. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
a127f84245 patchupdate.py: Add support to exclude individual files. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
e3753add9b Rebase against ec8485ec10e3c27b89ec5f1289bc8a3cdad5f3f6. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
55ab42ece0 Rebase against 5b4f8a385b46a8a8a8b09b8ca6578aa7b7995a1e. 2017-04-09 16:14:41 +02:00
Sebastian Lackner
4232441093 Release 2.4. 2017-03-21 02:14:59 +01:00
Sebastian Lackner
912df91ba1 windowscodecs-TIFF_Support: Fix order of pixel formats in gdiplus. 2017-03-20 19:09:27 +01:00
Sebastian Lackner
12f8688fc5 Added patch to improve performance of bilinear bitmap scaling. 2017-03-20 18:01:06 +01:00
Sebastian Lackner
3e2e449d4e Added patch to treat lpResults as optional in gdi32.GetCharacterPlacement. 2017-03-20 17:40:32 +01:00
Sebastian Lackner
3f05773e20 Added patch to fill process virtual memory counters in NtQuerySystemInformation. 2017-03-20 17:34:45 +01:00
Sebastian Lackner
a47000e41c Added patch with multiple fixes for owner-drawn and sorted listbox. 2017-03-20 16:49:38 +01:00
Sebastian Lackner
e92999d7d5 Added patch to add Vendor field in Win32_ComputerSystemProduct. 2017-03-20 05:54:30 +01:00
Sebastian Lackner
687f25d6bb ntdll-Interrupt-0x2e: Add reference to bug report. 2017-03-19 23:06:32 +01:00
Sebastian Lackner
8ef379ecc8 Added patch to implement querying for object types and their indices. 2017-03-19 22:27:07 +01:00
Sebastian Lackner
d79b66338e Added patch to implement stub handler for int 0x2e. 2017-03-19 20:32:29 +01:00
Sebastian Lackner
82cd676a72 Added patch to return user/kernel times for threads and processes in NtQuerySystemInformation. 2017-03-19 20:01:39 +01:00
Sebastian Lackner
da78da9cdd Added patch to silence noisy FIXME about unimplemented D3DPROCESSVERTICES_UPDATEEXTENTS. 2017-03-19 19:11:24 +01:00
Sebastian Lackner
b9b5da4780 Added patch to fix status code when querying too large memory address. 2017-03-19 17:54:21 +01:00
Sebastian Lackner
444ec16851 Added patches to mark LDR data as initialized. 2017-03-19 17:52:25 +01:00
Sebastian Lackner
76b749edc9 Rebase against 6a05069a43f1a8f0e69c4cedd134f8d7400b8a95. 2017-03-19 01:38:27 +01:00
Sebastian Lackner
a56b7a18c3 Rebase against a5031391f40c6196b9baccbf69f5ccbe3b59e17c. 2017-03-18 17:10:07 +01:00
Sebastian Lackner
5a5b6e862b Rebase against c3b108e54b99eff3942c44eef5aa89c1dbcebd91. 2017-03-16 17:13:47 +01:00
Sebastian Lackner
06da0acbdc Rebase against 2cc730b4ad148382093d67f15d40134aee05d058. 2017-03-15 16:16:43 +01:00
Sebastian Lackner
efdf5d2bc2 Rebase against f8031d06486761b1068a5b4fa8572d08efdfb8f1. 2017-03-14 03:37:18 +01:00
Sebastian Lackner
543b9eaae1 Rebase against 4b1445940d47870895b7fa87b7d69d12abe701ef. 2017-03-11 21:57:58 +01:00
Sebastian Lackner
ce5620a1a4 Added patch to return correct thread creation time in SystemProcessInformation. 2017-03-11 00:21:26 +01:00
Sebastian Lackner
05a282feff Added patch to implement IO stats for SystemPerformanceInformation in NtQuerySystemInformation. 2017-03-11 00:11:02 +01:00
Sebastian Lackner
ab34c856c3 Added patch to implement ProcessImageFileNameWin32 info class. 2017-03-10 23:09:57 +01:00
Sebastian Lackner
9a9fb0c9f8 Rebase against be0e05604a5560e26757d161708c2c3dae717834. 2017-03-10 04:53:06 +01:00
Sebastian Lackner
0ef6532241 Rebase against 1ddf2b4db8c42da36bdccd43dc336eee6ba03cce. 2017-03-10 03:25:38 +01:00
Sebastian Lackner
3b1cd79e05 Rebase against 9eecacbeb1561218d4870c83f89a233cabbf7e0c. 2017-03-08 22:56:02 +01:00
Sebastian Lackner
37b0772439 Rebase against 3f50319ec384730360d16dd79d703adafaa953fc. 2017-03-07 02:12:41 +01:00
Sebastian Lackner
3b947eae95 ntoskrnl-InStackQueuedSpinLock: Use the correct macro. 2017-03-06 22:06:33 +01:00
Sebastian Lackner
73cb57f5b9 Release 2.3. 2017-03-06 19:00:30 +01:00
Sebastian Lackner
f473f9cb80 wined3d-buffer_create: Update and reenable patch. 2017-03-06 17:45:16 +01:00
Sebastian Lackner
9e463db339 wintrust-WinVerifyTrust: Do not use memory mapping. 2017-03-06 17:30:20 +01:00
Sebastian Lackner
943ffbfbbf Added patch to implement LsaLookupPrivilege[Display]Name stubs. 2017-03-06 03:20:09 +01:00
Sebastian Lackner
5ad5986215 Added patch to implement Bcrypt ECB chaining mode. 2017-03-05 23:19:20 +01:00
Sebastian Lackner
998dd35306 Added patch to implement FileAccessInformation class. 2017-03-05 21:49:35 +01:00
Sebastian Lackner
df5f35e1d1 Added patch for kernel32.GetCurrentPackageFullName stub. 2017-03-05 20:02:03 +01:00
Sebastian Lackner
f61db43e7f Added patch to fix compile error when O_CLOEXEC is not defined. 2017-03-05 19:38:10 +01:00
Sebastian Lackner
734b40739a Added patch to implement stubs for Ke{Aquire,Release}InStackQueuedSpinLock functions. 2017-03-05 19:31:03 +01:00
Sebastian Lackner
c97e444da2 msvcrt-CurrentScheduler_Id: Fix compile error on x86_64. 2017-03-05 19:12:18 +01:00
Sebastian Lackner
b84644bd63 Added patch to save rdi and rsi in raise_func_trampoline on x86_64. 2017-03-05 14:42:55 +01:00
Sebastian Lackner
1c3562d671 server-LABEL_SECURITY_INFORMATION: Add reference to upstream bug. 2017-03-05 00:12:59 +01:00
Sebastian Lackner
14f5eae731 Added patch to implement stub for virtdisk.GetStorageDependencyInformation. 2017-03-04 23:19:16 +01:00
Sebastian Lackner
534583d958 Added patch to populate AudioCompressorCategory registry keys. 2017-03-04 21:54:30 +01:00
Sebastian Lackner
aa957fe3a3 Added patch to improve FolderItemsImpl_get_Count stub in shell32. 2017-03-04 20:18:12 +01:00
Sebastian Lackner
e3bf95ebea Added patch to allow to set INTERNET_OPTION_HTTP_DECODING on wininet sessions and connections. 2017-03-04 20:09:43 +01:00
Sebastian Lackner
8c7825d1c0 api-ms-win-Stub_DLLs: Update specfile. 2017-03-04 19:18:57 +01:00
Sebastian Lackner
fae17cd83a Added patch to implement stub for Concurrency::details::_CurrentScheduler::_Id. 2017-03-04 19:13:14 +01:00
Sebastian Lackner
8caca32d08 Added patch for MS root certificates 2010/2011. 2017-03-04 19:02:34 +01:00
Sebastian Lackner
0be12d7669 Added patch for semi-stub of d3d10_device_CheckFormatSupport. 2017-03-04 18:55:10 +01:00
Sebastian Lackner
a99ad44fff Added patch for semi-stub of d3d10_device_ResolveSubresource. 2017-03-04 18:44:46 +01:00
Sebastian Lackner
a644cbf827 Rebase against a2460b2424163bbf5b885db6a5423c3d98f883e0. 2017-03-04 18:31:06 +01:00
Sebastian Lackner
88c85f01c3 Rebase against e918c6fd8b426e8298eca5951d917960e4236d95. 2017-03-03 05:40:34 +01:00
Sebastian Lackner
04a8307d45 Rebase against e6f8f136fa557d282f44654be509573cb45a831f. 2017-03-02 17:27:26 +01:00
Sebastian Lackner
c6708dbbbf Rebase against 89b75296128e8c2cadc77cb06ecd7faa1f80d012. 2017-03-01 00:46:59 +01:00
Sebastian Lackner
3dfeab6722 Rebase against b47487af999f48ba2700b4dd5ff6cd47891d4787. 2017-02-28 04:53:10 +01:00
Sebastian Lackner
147562e3e1 d3d9-Tests: Remove some todo_wines.
Probably fixed by cab9282d10e4b2868a0dd85383b1126c0d6c591a.
2017-02-26 20:15:58 +01:00
Sebastian Lackner
1383fc82bc Rebase against adedebf47a9a02694b79965eb2aa670b3906b398. 2017-02-26 20:15:58 +01:00
Sebastian Lackner
23560728b5 Rebase against 0dc677c05fb71ba459ad20711af6637ab92e8847. 2017-02-24 03:25:04 +01:00
Sebastian Lackner
3f25cd198a wined3d-buffer_create: Disable patchset. 2017-02-23 16:50:11 +01:00
Sebastian Lackner
5b58419a0e Rebase against 1cc93e3f05bce5ae9758fad44f69f44e1462d81b. 2017-02-23 14:29:11 +01:00
Sebastian Lackner
4136b55f1c wined3d-CSMT_Main: Enforce memory limit for CSMT blocks. 2017-02-23 02:29:00 +01:00
Sebastian Lackner
2ae8a0be02 Rebase against 3d62cd26d1b988b373efae0b9c4a0a988985d45f. 2017-02-22 06:50:16 +01:00
Sebastian Lackner
dc52cbef3c Rebase against 60c98caa94465799d0868b69149bce29cf767de4. 2017-02-21 05:05:05 +01:00
423 changed files with 23622 additions and 26830 deletions

View File

@@ -13,7 +13,7 @@ Installation
Ready-to-use packages for Wine Staging are available for a variety of Linux
distributions and for Mac OS X. Just follow the
[installation instructions](https://github.com/wine-compholio/wine-staging/wiki/Installation)
[installation instructions](https://wine-staging.com/installation.html)
for your operating system.
On most distributions the `wine-staging` package is installed to

View File

@@ -0,0 +1,26 @@
From 43628d9b1905396ff6442e4f1e07c9dd48739b19 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Fri, 14 Apr 2017 15:57:18 +0200
Subject: ole32: Fix compilation with recent versions of gcc.
---
dlls/ole32/storage32.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/dlls/ole32/storage32.h b/dlls/ole32/storage32.h
index 4fcfd9c362..2b23ab8eb8 100644
--- a/dlls/ole32/storage32.h
+++ b/dlls/ole32/storage32.h
@@ -526,6 +526,9 @@ StgStreamImpl* StgStreamImpl_Construct(
/******************************************************************************
* Endian conversion macros
*/
+#undef htole32
+#undef htole16
+
#ifdef WORDS_BIGENDIAN
#define htole32(x) RtlUlongByteSwap(x)
--
2.12.2

View File

@@ -0,0 +1,25 @@
From 33717bde9e702520e23ae014c398bd7076902d43 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 4 Jun 2017 12:56:47 +0200
Subject: shell32: Fix length parameter for ZeroMemory.
---
dlls/shell32/shfldr_fs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/shell32/shfldr_fs.c b/dlls/shell32/shfldr_fs.c
index c7259276d1d..10653f92b52 100644
--- a/dlls/shell32/shfldr_fs.c
+++ b/dlls/shell32/shfldr_fs.c
@@ -1315,7 +1315,7 @@ ISFHelper_fnCopyItems (ISFHelper * iface, IShellFolder * pSFFrom, UINT cidl,
if (SUCCEEDED (IPersistFolder2_GetCurFolder (ppf2, &pidl))) {
SHGetPathFromIDListW (pidl, wszSrcPathRoot);
- ZeroMemory(wszDstPath, MAX_PATH+1);
+ ZeroMemory(wszDstPath, sizeof(wszDstPath));
if (This->sPathTarget)
lstrcpynW(wszDstPath, This->sPathTarget, MAX_PATH);
PathAddBackslashW(wszSrcPathRoot);
--
2.13.0

View File

@@ -0,0 +1,25 @@
From 2b5e9f330770221eee2eda2aab251eba8d370a60 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 4 Jun 2017 13:17:54 +0200
Subject: fusion: Fix length parameter for ZeroMemory.
---
dlls/fusion/tests/asmname.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/fusion/tests/asmname.c b/dlls/fusion/tests/asmname.c
index 5fb14a48291..21cd4874edc 100644
--- a/dlls/fusion/tests/asmname.c
+++ b/dlls/fusion/tests/asmname.c
@@ -358,7 +358,7 @@ static void test_assembly_name_props_line(IAssemblyName *name,
to_widechar(expect, vals[i].val);
size = MAX_PATH;
- ZeroMemory(str, MAX_PATH);
+ ZeroMemory(str, sizeof(str));
hr = IAssemblyName_GetProperty(name, i, str, &size);
to_multibyte(val, str);
--
2.13.0

View File

@@ -0,0 +1,34 @@
From 3e59710a3091a4a61b7cce00606ed23b7b66dfda Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 4 Jun 2017 12:55:31 +0200
Subject: fusion/tests: Avoid compiler warnings with GCC 7.
---
dlls/fusion/tests/asmenum.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/fusion/tests/asmenum.c b/dlls/fusion/tests/asmenum.c
index 1dc34a286e5..8b95f2a6bd5 100644
--- a/dlls/fusion/tests/asmenum.c
+++ b/dlls/fusion/tests/asmenum.c
@@ -223,7 +223,7 @@ typedef struct _tagASMNAME
static BOOL enum_gac_assemblies(struct list *assemblies, int depth, LPSTR path)
{
WIN32_FIND_DATAA ffd;
- CHAR buf[MAX_PATH];
+ CHAR buf[MAX_PATH + 37];
CHAR disp[MAX_PATH];
ASMNAME *name;
HANDLE hfind;
@@ -248,7 +248,7 @@ static BOOL enum_gac_assemblies(struct list *assemblies, int depth, LPSTR path)
else if (depth == 1)
{
char culture[MAX_PATH];
- char dll[MAX_PATH], exe[MAX_PATH];
+ char dll[MAX_PATH + 6], exe[MAX_PATH + 6];
/* Directories with no dll or exe will not be enumerated */
sprintf(dll, "%s\\%s\\%s.dll", path, ffd.cFileName, parent);
--
2.13.0

View File

@@ -0,0 +1,34 @@
From d1eafd34d4c0619f956afd365ddbde79680a18dc Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 4 Jun 2017 12:56:10 +0200
Subject: kernel32/tests: Avoid compiler warnings with GCC 7.
---
dlls/kernel32/tests/heap.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/dlls/kernel32/tests/heap.c b/dlls/kernel32/tests/heap.c
index 0acf109dff0..70ba674bc91 100644
--- a/dlls/kernel32/tests/heap.c
+++ b/dlls/kernel32/tests/heap.c
@@ -109,6 +109,9 @@ static void test_heap(void)
}
/* test some border cases of HeapAlloc and HeapReAlloc */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpragmas"
+#pragma GCC diagnostic ignored "-Walloc-size-larger-than="
mem = HeapAlloc(GetProcessHeap(), 0, 0);
ok(mem != NULL, "memory not allocated for size 0\n");
msecond = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, mem, ~(SIZE_T)0 - 7);
@@ -125,6 +128,7 @@ static void test_heap(void)
ok(size == 0 || broken(size == 1) /* some vista and win7 */,
"HeapSize should have returned 0 instead of %lu\n", size);
HeapFree(GetProcessHeap(), 0, msecond);
+#pragma GCC diagnostic pop
/* large blocks must be 16-byte aligned */
mem = HeapAlloc(GetProcessHeap(), 0, 512 * 1024);
--
2.13.1

View File

@@ -0,0 +1,25 @@
From 61ceddca38f26c2df2acc6361c35ced52fe9b098 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 4 Jun 2017 12:58:31 +0200
Subject: rsaenh/tests: Avoid compiler warnings with GCC 7.
---
dlls/rsaenh/rsaenh.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/rsaenh/rsaenh.c b/dlls/rsaenh/rsaenh.c
index 9af770dfc6e..6978c860278 100644
--- a/dlls/rsaenh/rsaenh.c
+++ b/dlls/rsaenh/rsaenh.c
@@ -1097,7 +1097,7 @@ static void store_key_permissions(HCRYPTKEY hCryptKey, HKEY hKey, DWORD dwKeySpe
*/
static BOOL create_container_key(KEYCONTAINER *pKeyContainer, REGSAM sam, HKEY *phKey)
{
- CHAR szRSABase[MAX_PATH];
+ CHAR szRSABase[MAX_PATH + 25];
HKEY hRootKey;
sprintf(szRSABase, RSAENH_REGKEY, pKeyContainer->szName);
--
2.13.0

View File

@@ -0,0 +1,46 @@
From 67ed53ca67214d7dbdea7f342b9f2ff0356a220b Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 4 Jun 2017 12:59:10 +0200
Subject: kernel32: Avoid compiler warnings with GCC 7.
---
dlls/kernel32/oldconfig.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/kernel32/oldconfig.c b/dlls/kernel32/oldconfig.c
index 6c80dc614f0..3e628757283 100644
--- a/dlls/kernel32/oldconfig.c
+++ b/dlls/kernel32/oldconfig.c
@@ -290,7 +290,8 @@ static void create_hardware_branch(void)
{
if (strncmp(dent->d_name, "hd", 2) == 0)
{
- sprintf(cStr, procname_ide_media, dent->d_name);
+ result = snprintf(cStr, sizeof(cStr), procname_ide_media, dent->d_name);
+ if (result < 0 || result >= sizeof(cStr)) continue;
procfile = fopen(cStr, "r");
if (!procfile)
{
@@ -306,7 +307,8 @@ static void create_hardware_branch(void)
if (nType == DRIVE_UNKNOWN) continue;
}
- sprintf(cStr, procname_ide_model, dent->d_name);
+ result = snprintf(cStr, sizeof(cStr), procname_ide_model, dent->d_name);
+ if (result < 0 || result >= sizeof(cStr)) continue;
procfile = fopen(cStr, "r");
if (!procfile)
{
@@ -322,7 +324,8 @@ static void create_hardware_branch(void)
cDevModel[strlen(cDevModel) - 1] = 0;
}
- sprintf(cUnixDeviceName, "/dev/%s", dent->d_name);
+ result = snprintf(cUnixDeviceName, sizeof(cUnixDeviceName), "/dev/%s", dent->d_name);
+ if (result < 0 || result >= sizeof(cUnixDeviceName)) continue;
scsi_addr.PortNumber = (dent->d_name[2] - 'a') / 2;
scsi_addr.PathId = 0;
scsi_addr.TargetId = (dent->d_name[2] - 'a') % 2;
--
2.13.0

View File

@@ -0,0 +1,24 @@
From 560a25c662f7b56d2b895759be1ea65c64d0f5af Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 4 Jun 2017 12:57:17 +0200
Subject: ws2_32/tests: Work around an incorrect detection in GCC 7.
---
dlls/ws2_32/tests/sock.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
index 677a750ec6b..65c82e36524 100644
--- a/dlls/ws2_32/tests/sock.c
+++ b/dlls/ws2_32/tests/sock.c
@@ -3601,6 +3601,7 @@ static DWORD WINAPI SelectReadThread(void *param)
struct sockaddr_in addr;
struct timeval select_timeout;
+ memset(&readfds, 0, sizeof(readfds));
FD_ZERO(&readfds);
FD_SET(par->s, &readfds);
select_timeout.tv_sec=5;
--
2.13.0

View File

@@ -0,0 +1,37 @@
From 9d0f651d9cb5c3ae68810e37dd6030373c7aeab6 Mon Sep 17 00:00:00 2001
From: Nils Kuhnhenn <kuhnhenn.nils@gmail.com>
Date: Wed, 24 Aug 2016 19:56:00 +0200
Subject: oleaut32: Use variable with the correct type in LIST_FOR_EACH_ENTRY_SAFE macro.
---
dlls/oleaut32/typelib.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
index b9318fba423..5a6dad496ed 100644
--- a/dlls/oleaut32/typelib.c
+++ b/dlls/oleaut32/typelib.c
@@ -4830,10 +4830,9 @@ static ULONG WINAPI ITypeLib2_fnRelease( ITypeLib2 *iface)
if (!ref)
{
TLBImpLib *pImpLib, *pImpLibNext;
- TLBRefType *ref_type;
+ TLBRefType *ref_type, *ref_type_next;
TLBString *tlbstr, *tlbstr_next;
TLBGuid *tlbguid, *tlbguid_next;
- void *cursor2;
int i;
/* remove cache entry */
@@ -4883,7 +4882,7 @@ static ULONG WINAPI ITypeLib2_fnRelease( ITypeLib2 *iface)
heap_free(pImpLib);
}
- LIST_FOR_EACH_ENTRY_SAFE(ref_type, cursor2, &This->ref_list, TLBRefType, entry)
+ LIST_FOR_EACH_ENTRY_SAFE(ref_type, ref_type_next, &This->ref_list, TLBRefType, entry)
{
list_remove(&ref_type->entry);
heap_free(ref_type);
--
2.13.1

View File

@@ -0,0 +1,24 @@
From 380543910f8912374a13b9773738e018bd638341 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 11 Jun 2017 02:42:47 +0200
Subject: gdiplus: Initialize containers list in GdipCloneImage.
---
dlls/gdiplus/image.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c
index ce2194317ff..b28606e916c 100644
--- a/dlls/gdiplus/image.c
+++ b/dlls/gdiplus/image.c
@@ -1339,6 +1339,7 @@ GpStatus WINGDIPAPI GdipCloneImage(GpImage *image, GpImage **cloneImage)
result->unit = metafile->unit;
result->metafile_type = metafile->metafile_type;
result->hemf = CopyEnhMetaFileW(metafile->hemf, NULL);
+ list_init(&result->containers);
if (!result->hemf)
{
--
2.13.1

View File

@@ -1,4 +1,4 @@
From 35e7be609df3c37eded9a3fd117ba0cef02f24c7 Mon Sep 17 00:00:00 2001
From b6b1e5da04ed867251253410e37d412109a4cec2 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Fri, 8 Aug 2014 19:33:14 -0600
Subject: Appease the blessed version of gcc (4.5) when -Werror is enabled.
@@ -12,10 +12,10 @@ Subject: Appease the blessed version of gcc (4.5) when -Werror is enabled.
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
index 55140c6..2facbfb 100644
index c8a6a1fa5a8..0261d3708e6 100644
--- a/dlls/d3d9/tests/visual.c
+++ b/dlls/d3d9/tests/visual.c
@@ -12034,7 +12034,7 @@ static void yuv_layout_test(void)
@@ -12304,7 +12304,7 @@ static void yuv_layout_test(void)
IDirect3D9 *d3d;
D3DCOLOR color;
DWORD ref_color;
@@ -25,7 +25,7 @@ index 55140c6..2facbfb 100644
IDirect3DDevice9 *device;
ULONG refcount;
diff --git a/dlls/netapi32/netapi32.c b/dlls/netapi32/netapi32.c
index bb61e7f..cf4c466 100644
index 278d4528b01..1c5f110b828 100644
--- a/dlls/netapi32/netapi32.c
+++ b/dlls/netapi32/netapi32.c
@@ -780,7 +780,7 @@ static NET_API_STATUS share_info_to_samba( DWORD level, const BYTE *buf, unsigne
@@ -38,7 +38,7 @@ index bb61e7f..cf4c466 100644
if (servername && !(server = strdup_unixcp( servername ))) return ERROR_OUTOFMEMORY;
diff --git a/dlls/winealsa.drv/mmdevdrv.c b/dlls/winealsa.drv/mmdevdrv.c
index 14eac39..ebff9f1 100644
index 2ecb111e218..b285705509c 100644
--- a/dlls/winealsa.drv/mmdevdrv.c
+++ b/dlls/winealsa.drv/mmdevdrv.c
@@ -359,7 +359,7 @@ static WCHAR *construct_device_id(EDataFlow flow, const WCHAR *chunk1, const cha
@@ -51,11 +51,11 @@ index 14eac39..ebff9f1 100644
static const WCHAR dashW[] = {' ','-',' ',0};
static const size_t dashW_len = (sizeof(dashW) / sizeof(*dashW)) - 1;
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 44e7090..429ae90 100644
index ce960853362..f4275d8dd48 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -6893,7 +6893,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
GLuint vs_id = 0;
@@ -9316,7 +9316,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
GLuint ds_id = 0;
GLuint gs_id = 0;
GLuint ps_id = 0;
- struct list *ps_list, *vs_list;
@@ -64,10 +64,10 @@ index 44e7090..429ae90 100644
struct wined3d_string_buffer *tmp_name;
diff --git a/tools/makedep.c b/tools/makedep.c
index d8cf2f5..280f62f 100644
index add722f80a9..24b06bbfcb2 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -1559,7 +1559,7 @@ static const char *get_make_variable( const struct makefile *make, const char *n
@@ -1608,7 +1608,7 @@ static const char *get_make_variable( const struct makefile *make, const char *n
static char *get_expanded_make_variable( const struct makefile *make, const char *name )
{
const char *var;
@@ -77,5 +77,5 @@ index d8cf2f5..280f62f 100644
var = get_make_variable( make, name );
if (!var) return NULL;
--
2.6.2
2.12.2

View File

@@ -1,287 +0,0 @@
From 472184e5801de5d1fb92d275d9c0c7e840c9a0bf Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Tue, 11 Nov 2014 03:11:33 +0100
Subject: ntdll: Implement emulation of SIDT instruction when using Exagear.
---
configure.ac | 8 ++
dlls/ntdll/signal_i386.c | 223 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 231 insertions(+)
diff --git a/configure.ac b/configure.ac
index 1e6bba3..43bf0db 100644
--- a/configure.ac
+++ b/configure.ac
@@ -32,6 +32,7 @@ AC_ARG_ENABLE(win16, AS_HELP_STRING([--disable-win16],[do not include Win16 supp
AC_ARG_ENABLE(win64, AS_HELP_STRING([--enable-win64],[build a Win64 emulator on AMD64 (won't run Win32 binaries)]))
AC_ARG_ENABLE(tests, AS_HELP_STRING([--disable-tests],[do not build the regression tests]))
AC_ARG_ENABLE(maintainer-mode, AS_HELP_STRING([--enable-maintainer-mode],[enable maintainer-specific build rules]))
+AC_ARG_ENABLE(exagear-compat, AS_HELP_STRING([--enable-exagear-compat],[use workarounds for known problems in the Exagear emulator]))
AC_ARG_WITH(alsa, AS_HELP_STRING([--without-alsa],[do not use the Alsa sound support]),
[if test "x$withval" = "xno"; then ac_cv_header_sys_asoundlib_h=no; ac_cv_header_alsa_asoundlib_h=no; fi])
@@ -364,6 +365,13 @@ WINE_WARNING_WITH(gettext,[test "$MSGFMT" = false],
[gettext tools not found (or too old), translations won't be built.],
[enable_po])
+dnl **** Enable Exagear workarounds ****
+
+if test "x$enable_exagear_compat" = "xyes"
+then
+ AC_DEFINE(EXAGEAR_COMPAT, 1, [Define if you want to enable Exagear emulator workarounds])
+fi
+
dnl **** Check for some libraries ****
dnl Check for -li386 for NetBSD and OpenBSD
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
index ee8855a..4269329 100644
--- a/dlls/ntdll/signal_i386.c
+++ b/dlls/ntdll/signal_i386.c
@@ -96,6 +96,14 @@ typedef struct
BYTE Reserved4[96];
} XMM_SAVE_AREA32;
+#include "pshpack1.h"
+struct idtr
+{
+ WORD limit;
+ BYTE *base;
+};
+#include "poppack.h"
+
/***********************************************************************
* signal context platform-specific definitions
*/
@@ -1898,6 +1906,213 @@ static inline DWORD get_fpu_code( const CONTEXT *context )
}
+#ifdef EXAGEAR_COMPAT
+
+/***********************************************************************
+ * INSTR_GetOperandAddr
+ *
+ * Return the address of an instruction operand (from the mod/rm byte).
+ */
+static BYTE *INSTR_GetOperandAddr( CONTEXT *context, const BYTE *instr,
+ int long_addr, int segprefix, int *len )
+{
+ int mod, rm, base = 0, index = 0, ss = 0, off;
+
+#define GET_VAL(val,type) \
+ { *val = *(type *)instr; instr += sizeof(type); *len += sizeof(type); }
+
+ *len = 0;
+ GET_VAL( &mod, BYTE );
+ rm = mod & 7;
+ mod >>= 6;
+
+ if (mod == 3)
+ {
+ switch(rm)
+ {
+ case 0: return (BYTE *)&context->Eax;
+ case 1: return (BYTE *)&context->Ecx;
+ case 2: return (BYTE *)&context->Edx;
+ case 3: return (BYTE *)&context->Ebx;
+ case 4: return (BYTE *)&context->Esp;
+ case 5: return (BYTE *)&context->Ebp;
+ case 6: return (BYTE *)&context->Esi;
+ case 7: return (BYTE *)&context->Edi;
+ }
+ }
+
+ if (long_addr)
+ {
+ if (rm == 4)
+ {
+ BYTE sib;
+ GET_VAL( &sib, BYTE );
+ rm = sib & 7;
+ ss = sib >> 6;
+ switch((sib >> 3) & 7)
+ {
+ case 0: index = context->Eax; break;
+ case 1: index = context->Ecx; break;
+ case 2: index = context->Edx; break;
+ case 3: index = context->Ebx; break;
+ case 4: index = 0; break;
+ case 5: index = context->Ebp; break;
+ case 6: index = context->Esi; break;
+ case 7: index = context->Edi; break;
+ }
+ }
+
+ switch(rm)
+ {
+ case 0: base = context->Eax; break;
+ case 1: base = context->Ecx; break;
+ case 2: base = context->Edx; break;
+ case 3: base = context->Ebx; break;
+ case 4: base = context->Esp; break;
+ case 5: base = context->Ebp; break;
+ case 6: base = context->Esi; break;
+ case 7: base = context->Edi; break;
+ }
+ switch (mod)
+ {
+ case 0:
+ if (rm == 5) /* special case: ds:(disp32) */
+ {
+ GET_VAL( &base, DWORD );
+ }
+ break;
+
+ case 1: /* 8-bit disp */
+ GET_VAL( &off, BYTE );
+ base += (signed char)off;
+ break;
+
+ case 2: /* 32-bit disp */
+ GET_VAL( &off, DWORD );
+ base += (signed long)off;
+ break;
+ }
+ }
+ else /* short address */
+ {
+ switch(rm)
+ {
+ case 0: /* ds:(bx,si) */
+ base = LOWORD(context->Ebx) + LOWORD(context->Esi);
+ break;
+ case 1: /* ds:(bx,di) */
+ base = LOWORD(context->Ebx) + LOWORD(context->Edi);
+ break;
+ case 2: /* ss:(bp,si) */
+ base = LOWORD(context->Ebp) + LOWORD(context->Esi);
+ break;
+ case 3: /* ss:(bp,di) */
+ base = LOWORD(context->Ebp) + LOWORD(context->Edi);
+ break;
+ case 4: /* ds:(si) */
+ base = LOWORD(context->Esi);
+ break;
+ case 5: /* ds:(di) */
+ base = LOWORD(context->Edi);
+ break;
+ case 6: /* ss:(bp) */
+ base = LOWORD(context->Ebp);
+ break;
+ case 7: /* ds:(bx) */
+ base = LOWORD(context->Ebx);
+ break;
+ }
+
+ switch(mod)
+ {
+ case 0:
+ if (rm == 6) /* special case: ds:(disp16) */
+ {
+ GET_VAL( &base, WORD );
+ }
+ break;
+
+ case 1: /* 8-bit disp */
+ GET_VAL( &off, BYTE );
+ base += (signed char)off;
+ break;
+
+ case 2: /* 16-bit disp */
+ GET_VAL( &off, WORD );
+ base += (signed short)off;
+ break;
+ }
+ base &= 0xffff;
+ }
+ /* FIXME: we assume that all segments have a base of 0 */
+ return (BYTE *)(base + (index << ss));
+#undef GET_VAL
+}
+
+
+/***********************************************************************
+ * check_invalid_instr
+ *
+ * Support for instructions not implemented by Exagear.
+ */
+static inline BOOL check_invalid_instr( CONTEXT *context )
+{
+ const BYTE *instr;
+ unsigned int prefix_count = 0;
+ int len, long_addr = 1;
+
+ if (!wine_ldt_is_system( context->SegCs )) return FALSE;
+ instr = (BYTE *)context->Eip;
+
+ for (;;) switch (*instr)
+ {
+ /* instruction prefixes */
+ case 0x2e: /* %cs: */
+ case 0x36: /* %ss: */
+ case 0x3e: /* %ds: */
+ case 0x26: /* %es: */
+ case 0x64: /* %fs: */
+ case 0x65: /* %gs: */
+ case 0x66: /* opcode size */
+ case 0x67: /* addr size */
+ case 0xf0: /* lock */
+ case 0xf2: /* repne */
+ case 0xf3: /* repe */
+ if (++prefix_count >= 15) return FALSE;
+ if (*instr == 0x67) long_addr = !long_addr; /* addr size */
+ instr++;
+ continue;
+ case 0x0f: /* extended instruction */
+ switch (instr[1])
+ {
+ case 0x01:
+ if (((instr[2] >> 3) & 7) == 1) /* sidt m */
+ {
+ struct idtr ret;
+ BYTE *addr;
+
+ if ((instr[2] >> 6) == 3) return FALSE; /* loading to register not allowed */
+ addr = INSTR_GetOperandAddr( context, instr + 2, long_addr, 0, &len );
+
+ /* fake IDT structure */
+ ret.limit = 0xfff;
+ ret.base = (void *)0xff000000;
+ memcpy(addr, &ret, sizeof(ret));
+
+ context->Eip += prefix_count + len + 2;
+ return TRUE;
+ }
+ break;
+ }
+ return FALSE;
+ default:
+ return FALSE;
+ }
+}
+
+#endif /* EXAGEAR_COMPAT */
+
+
/**********************************************************************
* raise_segv_exception
*/
@@ -1907,6 +2122,14 @@ static void WINAPI raise_segv_exception( EXCEPTION_RECORD *rec, CONTEXT *context
switch(rec->ExceptionCode)
{
+#ifdef EXAGEAR_COMPAT
+ case EXCEPTION_ILLEGAL_INSTRUCTION:
+ {
+ if (check_invalid_instr( context ))
+ goto done;
+ }
+ break;
+#endif
case EXCEPTION_ACCESS_VIOLATION:
if (rec->NumberParameters == 2)
{
--
2.7.1

View File

@@ -1,51 +0,0 @@
From 5a4827d5c16aefd82029583710b9032a2356917b Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 22 Nov 2014 05:49:30 +0100
Subject: ntdll: Fix issues with write watches when using Exagear.
---
dlls/ntdll/virtual.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
index f7aae0b..3fa2027 100644
--- a/dlls/ntdll/virtual.c
+++ b/dlls/ntdll/virtual.c
@@ -1558,6 +1558,26 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
{
void *page = ROUND_ADDR( addr, page_mask );
BYTE *vprot = &view->prot[((const char *)page - (const char *)view->base) >> page_shift];
+#ifdef EXAGEAR_COMPAT
+ /* Exagear doesn't correctly set err, so always check for write watches, and
+ * retry after removing the VPROT_WRITEWATCH or VPROT_WRITECOPY flag. In
+ * contrary to the general implementation below this is not completely race-
+ * condition safe. When multiple threads trigger the write watch at the same
+ * time only the first thread will properly continue the execution, the rest
+ * will crash. */
+ if ((view->protect & VPROT_WRITEWATCH) && (*vprot & VPROT_WRITEWATCH))
+ {
+ *vprot &= ~VPROT_WRITEWATCH;
+ VIRTUAL_SetProt( view, page, page_size, *vprot );
+ if (VIRTUAL_GetUnixProt( *vprot ) & PROT_WRITE) ret = STATUS_SUCCESS;
+ }
+ if (*vprot & VPROT_WRITECOPY)
+ {
+ *vprot = (*vprot & ~VPROT_WRITECOPY) | VPROT_WRITE;
+ VIRTUAL_SetProt( view, page, page_size, *vprot );
+ if (VIRTUAL_GetUnixProt( *vprot ) & PROT_WRITE) ret = STATUS_SUCCESS;
+ }
+#else
if (err & EXCEPTION_WRITE_FAULT)
{
if ((view->protect & VPROT_WRITEWATCH) && (*vprot & VPROT_WRITEWATCH))
@@ -1573,6 +1593,7 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
/* ignore fault if page is writable now */
if (VIRTUAL_GetUnixProt( *vprot ) & PROT_WRITE) ret = STATUS_SUCCESS;
}
+#endif
if (!on_signal_stack && (*vprot & VPROT_GUARD))
{
VIRTUAL_SetProt( view, page, page_size, *vprot & ~VPROT_GUARD );
--
2.2.2

View File

@@ -1,25 +0,0 @@
From 67cc0e23b26d5d9abda7eb771dc2bec309cb8650 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 23 Nov 2014 22:33:51 +0100
Subject: server: Don't attempt to use ptrace when running with Exagear.
---
server/ptrace.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/ptrace.c b/server/ptrace.c
index cb436b6..fb29b5a 100644
--- a/server/ptrace.c
+++ b/server/ptrace.c
@@ -531,7 +531,7 @@ void get_selector_entry( struct thread *thread, int entry, unsigned int *base,
#if defined(linux) && (defined(HAVE_SYS_USER_H) || defined(HAVE_ASM_USER_H)) \
- && (defined(__i386__) || defined(__x86_64__))
+ && (defined(__i386__) || defined(__x86_64__)) && !defined(EXAGEAR_COMPAT)
#ifdef HAVE_SYS_USER_H
#include <sys/user.h>
--
2.1.3

View File

@@ -1,2 +0,0 @@
Depends: ntdll-WRITECOPY
Disabled: true

View File

@@ -0,0 +1,55 @@
From ce0ab0ccd6e4953a9673d15e00cf602668469c2c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 5 Mar 2017 23:04:36 +0100
Subject: advapi32: Fix error code when calling LsaOpenPolicy for non existing
remote machine.
---
dlls/advapi32/lsa.c | 2 +-
dlls/advapi32/tests/lsa.c | 10 ++++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/dlls/advapi32/lsa.c b/dlls/advapi32/lsa.c
index b8dedbd6d58..e5e3b1649c0 100644
--- a/dlls/advapi32/lsa.c
+++ b/dlls/advapi32/lsa.c
@@ -692,7 +692,7 @@ NTSTATUS WINAPI LsaOpenPolicy(
ObjectAttributes, DesiredAccess, PolicyHandle);
ADVAPI_ForceLocalComputer(SystemName ? SystemName->Buffer : NULL,
- STATUS_ACCESS_VIOLATION);
+ RPC_NT_SERVER_UNAVAILABLE);
dumpLsaAttributes(ObjectAttributes);
if(PolicyHandle) *PolicyHandle = (LSA_HANDLE)0xcafe;
diff --git a/dlls/advapi32/tests/lsa.c b/dlls/advapi32/tests/lsa.c
index 4daf75f58d1..7ddda731be2 100644
--- a/dlls/advapi32/tests/lsa.c
+++ b/dlls/advapi32/tests/lsa.c
@@ -70,6 +70,8 @@ static BOOL init(void)
static void test_lsa(void)
{
+ static WCHAR machineW[] = {'W','i','n','e','N','o','M','a','c','h','i','n','e',0};
+ LSA_UNICODE_STRING machine;
NTSTATUS status;
LSA_HANDLE handle;
LSA_OBJECT_ATTRIBUTES object_attributes;
@@ -77,6 +79,14 @@ static void test_lsa(void)
ZeroMemory(&object_attributes, sizeof(object_attributes));
object_attributes.Length = sizeof(object_attributes);
+ machine.Buffer = machineW;
+ machine.Length = sizeof(machineW) - 2;
+ machine.MaximumLength = sizeof(machineW);
+
+ status = pLsaOpenPolicy( &machine, &object_attributes, POLICY_LOOKUP_NAMES, &handle);
+ ok(status == RPC_NT_SERVER_UNAVAILABLE,
+ "LsaOpenPolicy(POLICY_LOOKUP_NAMES) for invalid machine returned 0x%08x\n", status);
+
status = pLsaOpenPolicy( NULL, &object_attributes, POLICY_ALL_ACCESS, &handle);
ok(status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED,
"LsaOpenPolicy(POLICY_ALL_ACCESS) returned 0x%08x\n", status);
--
2.11.0

View File

@@ -0,0 +1,34 @@
From 1941137bff72a2297812bbd05fb6f6a1578426b0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 5 Mar 2017 23:05:54 +0100
Subject: advapi32: Use TRACE for LsaOpenPolicy/LsaClose.
---
dlls/advapi32/lsa.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/advapi32/lsa.c b/dlls/advapi32/lsa.c
index e5e3b1649c0..0f2167d19ab 100644
--- a/dlls/advapi32/lsa.c
+++ b/dlls/advapi32/lsa.c
@@ -136,7 +136,7 @@ NTSTATUS WINAPI LsaAddAccountRights(
*/
NTSTATUS WINAPI LsaClose(IN LSA_HANDLE ObjectHandle)
{
- FIXME("(%p) stub\n", ObjectHandle);
+ TRACE("(%p) semi-stub\n", ObjectHandle);
return STATUS_SUCCESS;
}
@@ -687,7 +687,7 @@ NTSTATUS WINAPI LsaOpenPolicy(
IN ACCESS_MASK DesiredAccess,
IN OUT PLSA_HANDLE PolicyHandle)
{
- FIXME("(%s,%p,0x%08x,%p) stub\n",
+ TRACE("(%s,%p,0x%08x,%p) semi-stub\n",
SystemName?debugstr_w(SystemName->Buffer):"(null)",
ObjectAttributes, DesiredAccess, PolicyHandle);
--
2.11.0

View File

@@ -0,0 +1,162 @@
From bee5e0baac722c66ad8c1034a65a2cecfe74716e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 5 Mar 2017 23:50:06 +0100
Subject: advapi32: Implement LsaLookupPrivilegeName.
---
dlls/advapi32/advapi32.spec | 2 +-
dlls/advapi32/advapi32_misc.h | 2 ++
dlls/advapi32/lsa.c | 38 ++++++++++++++++++++++++++++++++++++++
dlls/advapi32/security.c | 27 ++++++++++++++++++---------
include/ntsecapi.h | 1 +
5 files changed, 60 insertions(+), 10 deletions(-)
diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec
index 078bb8fc25..124f527282 100644
--- a/dlls/advapi32/advapi32.spec
+++ b/dlls/advapi32/advapi32.spec
@@ -469,7 +469,7 @@
@ stdcall LsaLookupNames(long long ptr ptr ptr)
@ stdcall LsaLookupNames2(ptr long long ptr ptr ptr)
@ stub LsaLookupPrivilegeDisplayName
-# @ stub LsaLookupPrivilegeName
+@ stdcall LsaLookupPrivilegeName(long ptr ptr)
# @ stub LsaLookupPrivilegeValue
@ stdcall LsaLookupSids(ptr long ptr ptr ptr)
# @ stub LsaLookupSids2
diff --git a/dlls/advapi32/advapi32_misc.h b/dlls/advapi32/advapi32_misc.h
index d116ecb836..ecb07f635a 100644
--- a/dlls/advapi32/advapi32_misc.h
+++ b/dlls/advapi32/advapi32_misc.h
@@ -68,4 +68,6 @@ static inline WCHAR *strdupAW( const char *src )
return dst;
}
+const WCHAR * const WellKnownPrivNames[SE_MAX_WELL_KNOWN_PRIVILEGE + 1];
+
#endif /* __WINE_ADVAPI32MISC_H */
diff --git a/dlls/advapi32/lsa.c b/dlls/advapi32/lsa.c
index 479201bfc1..ceb3b05c05 100644
--- a/dlls/advapi32/lsa.c
+++ b/dlls/advapi32/lsa.c
@@ -973,3 +973,41 @@ NTSTATUS WINAPI LsaUnregisterPolicyChangeNotification(
FIXME("(%d,%p) stub\n", class, event);
return STATUS_SUCCESS;
}
+
+/******************************************************************************
+ * LsaLookupPrivilegeName [ADVAPI32.@]
+ *
+ */
+NTSTATUS WINAPI LsaLookupPrivilegeName(
+ LSA_HANDLE handle,
+ PLUID lpLuid,
+ PUNICODE_STRING *name)
+{
+ UNICODE_STRING *priv_unicode;
+ size_t priv_size;
+ WCHAR *strW;
+
+ TRACE("(%p, %p, %p)\n", handle, lpLuid, name);
+
+ if (!handle)
+ return STATUS_INVALID_HANDLE;
+
+ if (!name)
+ return STATUS_INVALID_PARAMETER;
+
+ if (lpLuid->HighPart ||
+ (lpLuid->LowPart < SE_MIN_WELL_KNOWN_PRIVILEGE ||
+ lpLuid->LowPart > SE_MAX_WELL_KNOWN_PRIVILEGE))
+ return STATUS_NO_SUCH_PRIVILEGE;
+
+ priv_size = (strlenW(WellKnownPrivNames[lpLuid->LowPart]) + 1) * sizeof(WCHAR);
+ priv_unicode = heap_alloc(sizeof(*priv_unicode) + priv_size);
+ if (!priv_unicode) return STATUS_NO_MEMORY;
+
+ strW = (WCHAR *)(priv_unicode + 1);
+ strcpyW(strW, WellKnownPrivNames[lpLuid->LowPart]);
+ RtlInitUnicodeString(priv_unicode, strW);
+
+ *name = priv_unicode;
+ return STATUS_SUCCESS;
+}
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index e36792cff4..3bc8f48b19 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -1840,7 +1840,7 @@ static const WCHAR SE_IMPERSONATE_NAME_W[] =
static const WCHAR SE_CREATE_GLOBAL_NAME_W[] =
{ 'S','e','C','r','e','a','t','e','G','l','o','b','a','l','P','r','i','v','i','l','e','g','e',0 };
-static const WCHAR * const WellKnownPrivNames[SE_MAX_WELL_KNOWN_PRIVILEGE + 1] =
+const WCHAR * const WellKnownPrivNames[SE_MAX_WELL_KNOWN_PRIVILEGE + 1] =
{
NULL,
NULL,
@@ -2043,33 +2043,42 @@ BOOL WINAPI
LookupPrivilegeNameW( LPCWSTR lpSystemName, PLUID lpLuid, LPWSTR lpName,
LPDWORD cchName)
{
+ UNICODE_STRING system_name, *priv;
+ LSA_HANDLE lsa;
+ NTSTATUS status;
size_t privNameLen;
TRACE("%s,%p,%p,%p\n",debugstr_w(lpSystemName), lpLuid, lpName, cchName);
- if (!ADVAPI_IsLocalComputer(lpSystemName))
+ RtlInitUnicodeString(&system_name, lpSystemName);
+ status = LsaOpenPolicy(&system_name, NULL, POLICY_LOOKUP_NAMES, &lsa);
+ if (status)
{
- SetLastError(RPC_S_SERVER_UNAVAILABLE);
+ SetLastError(LsaNtStatusToWinError(status));
return FALSE;
}
- if (lpLuid->HighPart || (lpLuid->LowPart < SE_MIN_WELL_KNOWN_PRIVILEGE ||
- lpLuid->LowPart > SE_MAX_WELL_KNOWN_PRIVILEGE))
+
+ status = LsaLookupPrivilegeName(&lsa, lpLuid, &priv);
+ LsaClose(lsa);
+ if (status)
{
- SetLastError(ERROR_NO_SUCH_PRIVILEGE);
+ SetLastError(LsaNtStatusToWinError(status));
return FALSE;
}
- privNameLen = strlenW(WellKnownPrivNames[lpLuid->LowPart]);
- /* Windows crashes if cchName is NULL, so will I */
+
+ privNameLen = priv->Length / sizeof(WCHAR);
if (*cchName <= privNameLen)
{
*cchName = privNameLen + 1;
+ LsaFreeMemory(priv);
SetLastError(ERROR_INSUFFICIENT_BUFFER);
return FALSE;
}
else
{
- strcpyW(lpName, WellKnownPrivNames[lpLuid->LowPart]);
+ strcpyW(lpName, priv->Buffer);
*cchName = privNameLen;
+ LsaFreeMemory(priv);
return TRUE;
}
}
diff --git a/include/ntsecapi.h b/include/ntsecapi.h
index 2bb3d312e4..0bf0eca43e 100644
--- a/include/ntsecapi.h
+++ b/include/ntsecapi.h
@@ -370,6 +370,7 @@ NTSTATUS WINAPI LsaLookupNames(LSA_HANDLE,ULONG,PLSA_UNICODE_STRING,PLSA_REFEREN
PLSA_TRANSLATED_SID*);
NTSTATUS WINAPI LsaLookupNames2(LSA_HANDLE,ULONG,ULONG,PLSA_UNICODE_STRING,PLSA_REFERENCED_DOMAIN_LIST*,
PLSA_TRANSLATED_SID2*);
+NTSTATUS WINAPI LsaLookupPrivilegeName(LSA_HANDLE,PLUID,PUNICODE_STRING*);
NTSTATUS WINAPI LsaLookupSids(LSA_HANDLE,ULONG,PSID *,PLSA_REFERENCED_DOMAIN_LIST *,PLSA_TRANSLATED_NAME *);
ULONG WINAPI LsaNtStatusToWinError(NTSTATUS);
NTSTATUS WINAPI LsaOpenPolicy(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,ACCESS_MASK,PLSA_HANDLE);
--
2.11.0

View File

@@ -0,0 +1,62 @@
From 63d642a1af3ccc579123cb8fd13959ab5e9136dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 6 Mar 2017 00:01:53 +0100
Subject: advapi32: Add stub for LsaLookupPrivilegeDisplayName.
---
dlls/advapi32/advapi32.spec | 2 +-
dlls/advapi32/lsa.c | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec
index 124f527282..0b03cec3f5 100644
--- a/dlls/advapi32/advapi32.spec
+++ b/dlls/advapi32/advapi32.spec
@@ -468,7 +468,7 @@
# @ stub LsaICLookupSidsWithCreds
@ stdcall LsaLookupNames(long long ptr ptr ptr)
@ stdcall LsaLookupNames2(ptr long long ptr ptr ptr)
-@ stub LsaLookupPrivilegeDisplayName
+@ stdcall LsaLookupPrivilegeDisplayName(long ptr ptr ptr)
@ stdcall LsaLookupPrivilegeName(long ptr ptr)
# @ stub LsaLookupPrivilegeValue
@ stdcall LsaLookupSids(ptr long ptr ptr ptr)
diff --git a/dlls/advapi32/lsa.c b/dlls/advapi32/lsa.c
index ceb3b05c05..c2e02fb462 100644
--- a/dlls/advapi32/lsa.c
+++ b/dlls/advapi32/lsa.c
@@ -44,6 +44,12 @@ WINE_DEFAULT_DEBUG_CHANNEL(advapi);
return FailureCode; \
}
+static LPCSTR debugstr_us( const UNICODE_STRING *us )
+{
+ if (!us) return "(null)";
+ return debugstr_wn(us->Buffer, us->Length / sizeof(WCHAR));
+}
+
static void dumpLsaAttributes(const LSA_OBJECT_ATTRIBUTES *oa)
{
if (oa)
@@ -1011,3 +1017,18 @@ NTSTATUS WINAPI LsaLookupPrivilegeName(
*name = priv_unicode;
return STATUS_SUCCESS;
}
+
+/******************************************************************************
+ * LsaLookupPrivilegeDisplayName [ADVAPI32.@]
+ *
+ */
+NTSTATUS WINAPI LsaLookupPrivilegeDisplayName(
+ LSA_HANDLE handle,
+ PLSA_UNICODE_STRING name,
+ PLSA_UNICODE_STRING *dispname,
+ SHORT *language)
+{
+ FIXME("(%p, %s, %p, %p)\n", handle, debugstr_us(name), dispname, language);
+
+ return STATUS_NO_SUCH_PRIVILEGE;
+}
--
2.11.0

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