Compare commits

...

239 Commits

Author SHA1 Message Date
Alistair Leslie-Hughes
432c0b5a83 Release v6.11 2021-06-19 12:46:42 +10:00
Alistair Leslie-Hughes
5d26dfaa93 Rebase against c82c5e96a9eb13bfa1fef95fb7467ce17624a341. 2021-06-18 11:13:24 +10:00
Alistair Leslie-Hughes
876024f44f Rebase against afd5550b07f6d55e56738f61d829085d6bc82888. 2021-06-17 10:06:41 +10:00
Alistair Leslie-Hughes
c933b26cb6 Rebase against 619bd1867ac650aa664327765a8ec7fbdeaa73d8. 2021-06-16 07:59:02 +10:00
Alistair Leslie-Hughes
eeec769eeb Rebase against 25271032dfb3f126a8b0dff2adb9b96a7d09241d. 2021-06-15 08:05:55 +10:00
Zebediah Figura
e3cca687be Rebase against f5bd0be6a44c1c7d69afb8b8eb6311923e7762a1. 2021-06-12 01:46:29 -05:00
Alistair Leslie-Hughes
08912e4896 Rebase against 2a505efb1ca14f33503657eb070de6edd484b4f3. 2021-06-10 10:07:27 +10:00
Alistair Leslie-Hughes
daec2e3662 Fixed compile errors when building with -Werror
NOTE: Tests are skipped.
2021-06-08 12:21:21 +10:00
Alistair Leslie-Hughes
8a3554ad85 Release v6.10 2021-06-05 15:36:11 +10:00
Alistair Leslie-Hughes
1fc93d6e9f Added dpnet-Server-EnumServiceProviders patchset 2021-06-05 13:17:28 +10:00
Alistair Leslie-Hughes
799d451409 Added api-ms-win-core-psapi-K32GetModuleInformation patchset 2021-06-05 12:58:08 +10:00
Alistair Leslie-Hughes
a534ddb0a0 Rebase against 649385e7d47091fa25b9114668075b06d2942e2f. 2021-06-05 10:46:23 +10:00
Zebediah Figura
3e16509e0e quartz-MediaSeeking_Positions: Remove patch set.
There is no reference for an application that needs this, and a quick test
shows that it is incorrect for both the base passthrough object and for every
filter we have that uses it.
2021-06-02 23:00:52 -05:00
Alistair Leslie-Hughes
06523ed0a0 Rebase against 0807b09cfa7f2446f7a69f99ff1006e88c9de60b. 2021-06-03 08:59:40 +10:00
Alistair Leslie-Hughes
0e6e23e1f9 Removed old windows.networking.connectivity patchset 2021-06-03 08:34:55 +10:00
Zebediah Figura
8790b8780f Rebase against 96030ce738aa20f85a5138ec7c231c19a086f019. 2021-06-01 19:05:12 -05:00
Zebediah Figura
44f10effff Rebase against 211da181c9140541ab7f7fcfa479367b3f7783eb. 2021-06-01 19:05:11 -05:00
Alistair Leslie-Hughes
73c8cb1002 Added windows.networking.connectivity-new-dll patchset 2021-06-01 14:09:59 +10:00
Alistair Leslie-Hughes
356d0d750c Added wbemdisp-ISWbemObject-Invoke patchset 2021-05-30 17:21:08 +10:00
Alistair Leslie-Hughes
9efac47eec Added wscript-support-d-u-switches patchset 2021-05-29 14:24:02 +10:00
Alistair Leslie-Hughes
2ebe0e23aa Rebase against 35180d368a94156cb77b09560b24d3af428b988b. 2021-05-29 13:53:27 +10:00
Zebediah Figura
d4e9192632 Rebase against ce151dd681fe5ee80daba96dce12e37d6846e152. 2021-05-27 17:10:15 -05:00
Zebediah Figura
d97f6a5faa Rebase against 9bc7d41080f5e6805154b9d52a765f2be5d37279. 2021-05-27 00:38:35 -05:00
Alistair Leslie-Hughes
34afd80e2e Rebase against 8ddff3f51faca2c0824e204a69f69e241fb93d15. 2021-05-26 10:17:35 +10:00
Zebediah Figura
69765f438b d3d11-Deferred_Context, wined3d-CSMT_Main: Fix data size calculation for block-based formats with unaligned size.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51172
2021-05-24 23:16:59 -05:00
Zebediah Figura
99d312740b Rebase against 94eb8d36461f6eb380b95e58629ad4871e5efef4. 2021-05-24 22:39:23 -05:00
Zebediah Figura
5bbe3e47a5 wined3d-CSMT_Main: Pass the right size to wined3d_device_context_require_space().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51172
2021-05-24 11:19:48 -05:00
Alistair Leslie-Hughes
cfe44f6d5d Release v6.9 2021-05-23 12:28:21 +10:00
Zebediah Figura
88a18586d3 wined3d-CSMT_Main: Rewrite on top of d3d11-Deferred_Context. 2021-05-22 18:49:28 -05:00
Zebediah Figura
85d7293a41 nvapi-Stub_DLL: Make the depth bounds test implementation more architecturally consistent. 2021-05-22 18:48:41 -05:00
Zebediah Figura
a71e4cdf85 user32-rawinput-*: Updates from Rémi Bernon. 2021-05-22 18:35:33 -05:00
Zebediah Figura
5378adafaa d3d11-Deferred_Context: Replace with a new implementation. 2021-05-22 01:22:14 -05:00
Zebediah Figura
be3928a809 server-default_integrity: Elevate processes if the manifest requests.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51000
2021-05-21 22:11:04 -05:00
Alistair Leslie-Hughes
f308782dad Rebase against dff85646517526562644c23648d11596daeb26d0. 2021-05-21 12:07:42 +10:00
Alistair Leslie-Hughes
e3ec587726 Rebase against 44b30c42cbb231e3ea54a47f6ecc19e641e5f889. 2021-05-20 08:09:27 +10:00
Alistair Leslie-Hughes
b595359adf Updated msxml3-FreeThreadedXMLHTTP60 patchset
Thanks Gijs Vermeulen.
2021-05-19 11:33:50 +10:00
Alistair Leslie-Hughes
ab2f8734d9 Rebase against 2a667e28ba7800288f5873a4b13bc0baf6e4a857. 2021-05-19 09:54:05 +10:00
Alistair Leslie-Hughes
f7a08f5969 Merge pull request #80 from Gcenx/FUNDING
Create FUNDING.yml
2021-05-19 07:30:18 +10:00
Alistair Leslie-Hughes
f867740029 Merge pull request #79 from Gcenx/jxrlib
macOS.yml: Added jxrlib
2021-05-19 07:29:44 +10:00
Dean M Greer
667cea7592 Create FUNDING.yml
https://github.blog/2020-03-24-getting-started-with-github-sponsors/

Enable to show the "Sponsors" Button and sidebar.
2021-05-18 09:27:13 -04:00
Dean M Greer
dbdde3ad10 macOS.yml: Added jxrlib
Since 5f7694179c the formula now builds dylibs on macOS
2021-05-18 09:09:28 -04:00
Alistair Leslie-Hughes
e2875bb754 Rebase against 9172ca5baa27b0c929b14a49f60333613cc30c65. 2021-05-18 07:44:16 +10:00
Zebediah Figura
180ba8c931 server-default_integrity: Create the MSI custom action server as an elevated process. 2021-05-16 20:52:14 -05:00
Alistair Leslie-Hughes
0df3e892fb Rebase against 0a50674c6aabb0368811ece4078a2bb69d7ea1bb. 2021-05-13 09:38:12 +10:00
Zebediah Figura
234a9fe775 Rebase against c74508d22528548940db3c8ac6a350064ca445e9. 2021-05-11 21:18:28 -05:00
Zebediah Figura
7f18df4633 Rebase against 44cb53bb37d3c40ea90aec6e35a9c08326b6e848. 2021-05-11 01:01:15 -05:00
Zebediah Figura
8e5c8cc63b ntdll-Junction_Points: Updates from Erich E. Hoover.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50770
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50804
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50878
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51059
2021-05-08 15:14:02 -05:00
Zebediah Figura
7c888e7fee ntdll-DOS_Attributes: Remove a commented dependency. 2021-05-08 14:36:49 -05:00
Alistair Leslie-Hughes
0f00e37c68 Release v6.8 2021-05-08 15:34:35 +10:00
Alistair Leslie-Hughes
8c06be6529 Rebase against 99e47361a37a4bf16de131401a0c231f86214a43. 2021-05-08 13:13:58 +10:00
Zebediah Figura
50d26744b0 Rebase against a64861fb66be722f3a93ab73152c5d477ba3bd3e. 2021-05-06 18:40:21 -05:00
Alistair Leslie-Hughes
046b1ab22c Rebase against e2aa30f21def839866b09e74b5ddd843f7e70c87. 2021-05-06 08:38:36 +10:00
Zebediah Figura
1ebf4bd23f Rebase against cda4abac9859ed42c29e8cb2746201a578431a5e. 2021-05-04 18:28:59 -05:00
Zebediah Figura
b113f99f07 dxdiag-new-dlls: Remove patch set.
From the discussion in <https://bugs.winehq.org/show_bug.cgi?id=50293>, these
patches don't seem to be providing any value (all they are doing is causing
arbitrarily chosen numbers to be shown in the dialog, which don't reflect
anything about actual functionality).

A possible benefit of these patches is anticipating their need by other
programs. However, (a) most of these DLLs are internal helpers used by other
(public) DirectX APIs, (b) the case of a missing DLL is usually quite easy to
debug anyway, (c) such a stance leaves us with the maintenance burden of far
more code that will never be necessary than code that actually turns out to be
useful.

Since (1) upstream has appeared reticent to accept them, (2) a proposal for
their removal in the bug report met with no apparent objection, (3) they have
already caused at least two regressions [however easy to fix], namely bug 50395
and bug 50700, (4) they present a noticeable maintenance burden, if a trivial
one, (5) as explained they provide no real benefit, remove them.
2021-05-04 17:56:21 -05:00
Zebediah Figura
813bfa288e Rebase against 3ba4412be60dafee310b5d3c71aa762aa8846564. 2021-05-03 23:39:26 -05:00
Zebediah Figura
c814617e2c ntdll-NtAlertThreadByThreadId: Fix compilation on Mac OS. 2021-05-03 10:57:10 -05:00
Zebediah Figura
cb7a9792d7 comctl-Listview_DrawItem: Remove patch set.
This was fixed upstream by c32720349cd4a6f4c32fdcff6a4cce054fbfe33e.
2021-05-01 21:52:38 -05:00
Zebediah Figura
96a8cc2920 pdh-PdhLookupPerfNameByIndex-processor: Remove patch set.
This was written for Silverlight, but Silverlight didn't actually need this.
2021-04-30 18:39:55 -05:00
Zebediah Figura
a1a2d65488 ntdll-NtAlertThreadByThreadId: Use flat two-dimensional arrays indexed by thread ID on both the PE and Unix side.
This should be less invasive and hopefully improve performance.
2021-04-30 18:10:02 -05:00
Zebediah Figura
7d496bf02c Rebase against 2deb8c2825afcb88a9f106b73aa1f4da9253fb87. 2021-04-30 17:50:37 -05:00
Alistair Leslie-Hughes
4d8896cc35 Rebase against ca03802a456e7cf4efd834edfeddc483ac72e4b5. 2021-04-30 09:12:29 +10:00
Zebediah Figura
977e5237da winedevice-Default_Drivers: Install win32k.sys in system32 instead of trying to load it from system32\drivers. 2021-04-28 22:55:45 -05:00
Alistair Leslie-Hughes
708e63e63f Rebase against 8f8fa9182af7a2995940a5e17cf074bc849f2c0f. 2021-04-29 08:17:58 +10:00
Alistair Leslie-Hughes
921d247b6b Updated winedevice-Default_Drivers patchset
Fixes: https://bugs.winehq.org/show_bug.cgi?id=51075
2021-04-29 08:15:44 +10:00
Alistair Leslie-Hughes
a918fa9a1c Updated Staging patchset
Fixes: https://bugs.winehq.org/show_bug.cgi?id=50997
2021-04-28 18:38:58 +10:00
Zebediah Figura
592b9480ef Rebase against 4ccf7498aac20b2b0afa2118f8d919718e5fcbbe. 2021-04-27 20:03:45 -05:00
Alistair Leslie-Hughes
552dc36846 Updated user32-rawinput-hid patchset
Fixes: https://bugs.winehq.org/show_bug.cgi?id=51054
2021-04-25 17:55:02 +10:00
Alistair Leslie-Hughes
deed76f394 Release v6.7 2021-04-24 16:11:30 +10:00
Alistair Leslie-Hughes
20e795b107 Added secur32-InitializeSecurityContextW patchset 2021-04-24 16:08:50 +10:00
Zebediah Figura
ac30cf5d62 user32-rawinput-hid: Fix rebase. 2021-04-23 20:33:04 -05:00
Alistair Leslie-Hughes
99759f003a Rebase against c0af8b73725d2670c9b018a255c503dee6912cf5. 2021-04-24 10:22:14 +10:00
Zebediah Figura
7eb07f1d50 Rebase against 5a1d836def24043b4e7afcdc8cf1342223957edf. 2021-04-22 16:49:07 -05:00
Zebediah Figura
68f87944cf wineboot-DriveSerial: Remove patch.
Fixed upstream by <50903a1504>.
2021-04-21 23:01:12 -05:00
Alistair Leslie-Hughes
0c8991562d Updated xactengine3_7-Notification patchset 2021-04-22 13:52:45 +10:00
Zebediah Figura
27fae2dc15 Rebase against 08c6114fbbdabe1873731356c51716e513a26348. 2021-04-21 19:23:54 -05:00
Alistair Leslie-Hughes
39f66ddd9f Rebase against 788fd4ee44fc9877b01888fdd3cd72b9ac88228e. 2021-04-21 11:40:13 +10:00
Zebediah Figura
33d85bda8a server-File_Permissions: Do not force user modes to be at least as permissive as group modes, or group modes as world modes.
This removes one of the two parts of this patch.

It's really splitting hairs, but this isn't clearly more correct than the
current code, and in fact it actually makes at least one contrived ACL worse
(namely: deny user, then allow all; this should deny the user on Windows and
currently already does on Wine.)
2021-04-19 18:33:20 -05:00
Zebediah Figura
ba9a7a6a74 ntdll-Activation_Context: Remove patch.
This was originally the third patch in a series, introduced by ec4e719cd6. The
first patch and the series itself was written by Mark Jansen and focused on an
incorrect handling of NULL in QueryActCtx(). It's not clear what those were
actually for, but they're upstream now.

My guess is that Sebastian noticed this "bug" while writing tests and wrote the
patch to fix it, as it's an easy one-liner. My guess is that he never submitted
it upstream either because it wasn't clearly correct (e.g. he wanted to actually
implement ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION) or because of
disagreements with upstream over project direction. As it happens there is a way
to get ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION to return valid data—pass
a NULL or empty string as the section name.

Anyway, the patch is likely to have never actually helped anything, and even if
it did, it's a one-liner with a FIXME message already attached, and so won't be
hard to debug again if necessary.
2021-04-19 18:14:44 -05:00
Zebediah Figura
85fbfed5eb Rebase against 06ab0677587fbbb83ef73efa7ed22bf85dcb6836. 2021-04-19 18:11:23 -05:00
Zebediah Figura
20303a53ec Rebase against 749f8c25e262cb049289e7c96bb390edcafa1021. 2021-04-16 17:42:09 -05:00
Zebediah Figura
30c9d5a0f8 Rebase against 39263558a2088940aaacd6eda19ca23d40b63495. 2021-04-16 00:26:25 -05:00
Zebediah Figura
425f75f839 Rebase against 092c7a09a5afde3f11b71b1816388e80d062e8ec. 2021-04-14 19:17:15 -05:00
Zebediah Figura
d805441f46 Rebase against c6393968754d64189f111e9277fb9060ec415fae. 2021-04-13 20:27:50 -05:00
Zebediah Figura
2211b6664e mfplat-streaming-support: Remove patch 0019.
This was fixed by 800103d127.
2021-04-13 16:24:27 -05:00
Zebediah Figura
a886228fbc user32-rawinput-mouse: Update from Rémi Bernon.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50969
2021-04-12 17:00:07 -05:00
Zebediah Figura
e353590528 kernel32-Processor_Group: Remove patch 0001.
This has no effect now other than to return ERROR_INVALID_PARAMETER in some cases, which is not really more correct.
2021-04-12 16:56:56 -05:00
Zebediah Figura
b582d2d018 Rebase against 4904d90870a716fda971fc12240ddbc23323475c. 2021-04-12 16:54:57 -05:00
Zebediah Figura
00aab80494 Release v6.6 2021-04-09 17:47:34 -05:00
Zebediah Figura
86424f3ac1 bcrypt-ECDHSecretAgreement: Remove a commented "Disabled: true" directive. 2021-04-09 17:40:52 -05:00
Zebediah Figura
661df7b889 user32-rawinput-*: Replace with new patches from Rémi Bernon. 2021-04-09 17:39:38 -05:00
Zebediah Figura
64ea26c0cb Rebase against a24bdfc2c69c5648cbb3df762149b2647e209a09. 2021-04-09 15:23:33 -05:00
Zebediah Figura
9319c38de2 Rebase against 3269da9b46eaec8e3ea263fc8ecfcd24d3d8b6e6. 2021-04-08 18:18:17 -05:00
Zebediah Figura
03f7334e65 Actually rebase against ac65e1540960e64ce29e40ec19e4eade8369d520. 2021-04-07 18:35:45 -05:00
Zebediah Figura
eb40bf85d6 Rebase against ac65e1540960e64ce29e40ec19e4eade8369d520. 2021-04-07 17:30:55 -05:00
Zebediah Figura
d1169e15ee Rebase against 5a8bc554ef06c4a21d8b49ea8d936299f2cb2f34. 2021-04-06 18:45:52 -05:00
Zebediah Figura
0c295023f1 Rebase against 8d076bc5e46cc11ec94db631e7c608f62d75cee2. 2021-04-06 17:41:23 -05:00
Zebediah Figura
733a420dd7 server-Key_State: Replace with new patches from Rémi Bernon.
This also serves as a rebase against 2fcc1d0ecdebc55a5f515b1390ce715303f6a6ad.
2021-04-02 20:15:01 -05:00
Zebediah Figura
545073aafa Rebase against 97b420224e767b24d89722ff5efeca38a8ecf1e2. 2021-04-01 23:03:15 -05:00
Zebediah Figura
4e2dc89043 Rebase against 29d9659095fd76e303f204050ab4c85d0a0486e4. 2021-03-31 16:49:32 -05:00
Zebediah Figura
2929606a6a msxml3-FreeThreadedXMLHTTP60: Change bug reference to reflect split upstream bug. 2021-03-31 16:04:59 -05:00
Zebediah Figura
d90a798a26 Rebase against 7c62e6b169f18f4a5d5809490f8aebdb5a9375eb. 2021-03-30 17:06:03 -05:00
Zebediah Figura
2e42e7d996 Rebase against 6ca1a92684fcbaa1c569b60411a8036b6d11dc99. 2021-03-29 17:03:49 -05:00
Alistair Leslie-Hughes
34ba08404f Release v6.5 2021-03-28 18:24:50 +11:00
Zebediah Figura
7b199110bb Rebase against 71d41b37a1917cdf20cdb171dc73c20dbfdaeefa. 2021-03-27 10:31:02 -05:00
Alistair Leslie-Hughes
3d3cbfce86 Updated ntdll-Hide_Wine_Exports patchset 2021-03-26 15:05:50 +11:00
Alistair Leslie-Hughes
0547bb4578 Rebase against 34652f37e443a9e7698f66d13df3b4811b1c0cc3. 2021-03-26 10:38:20 +11:00
Zebediah Figura
f20c33fa04 Rebase against 12cfe6826773708e3b15f73b9674ccb959000d8b. 2021-03-24 16:48:35 -05:00
Zebediah Figura
a644c49d6d winmm-Delay_Import_Depends: Remove patch set.
This was fixed upstream at some point.
2021-03-24 11:27:50 -05:00
Zebediah Figura
d2102728fe Rebase against f69c8f018188af49d5a3916f7bb7e3ab984fd3ec. 2021-03-23 17:24:09 -05:00
Zebediah Figura
a93d3b6369 Use source.winehq.org in CI scripts. 2021-03-22 18:20:56 -05:00
Zebediah Figura
09fdb3b5c9 Rebase against d1764a45cfd12f8c5699fd7428cf90f90a2d31ef.
Actually rebase this time.
2021-03-22 18:18:36 -05:00
Zebediah Figura
5897bc1d27 Rebase against 41df83c50e1c3cfdd6e8ffb65de7838f8503632c. 2021-03-22 17:37:48 -05:00
Zebediah Figura
f8b6fde40c Rebase against 41df83c50e1c3cfdd6e8ffb65de7838f8503632c. 2021-03-19 21:15:35 -05:00
Alistair Leslie-Hughes
34d5c3568f Rebase against 6d26689484070b2c4ad4e0e16812c6eb8176cd40. 2021-03-19 14:27:44 +11:00
Zebediah Figura
44af049de7 Rebase against 2828d0820a1661e46f606f28db090d710cef11f4. 2021-03-18 00:32:41 -05:00
Alistair Leslie-Hughes
c747e46d75 Rebase against 4d5824112e13160e538013a25f1c13a124565180. 2021-03-17 09:44:07 +11:00
Zebediah Figura
1f89c15143 Rebase against 23ffd0a7986421958c23cffce138afa389209920. 2021-03-15 18:28:35 -05:00
Alistair Leslie-Hughes
7ec998e17a Release v6.4 2021-03-15 08:31:03 +11:00
Zebediah Figura
186c17f454 ntdll-Junction_Points: Updates from Erich E. Hoover. 2021-03-12 21:53:58 -06:00
Zebediah Figura
4a427fa757 Rebase against 4336ed0b84b3dd3097bbbbf8e4b9de2e4d444ad7. 2021-03-12 16:12:02 -06:00
Alistair Leslie-Hughes
5bcba4ef5a Rebase against 0ae1669ec2798193b11fd2d2ac74d51203f673b2. 2021-03-12 10:33:43 +11:00
Zebediah Figura
acc0de4def Rebase against 580413032c61bc142078d08efb1d1167fe385a97. 2021-03-10 19:40:52 -06:00
Zebediah Figura
3790a70510 setupapi-SPFILENOTIFY_FILEINCABINET: Remove patch set.
This is fixed upstream now.
2021-03-09 17:07:04 -06:00
Alistair Leslie-Hughes
e7c08665ab Rebase against 9107f591d3d73a3b4040db2e13ef51d9846591c9. 2021-03-10 08:55:33 +11:00
Alistair Leslie-Hughes
a11594e19e Merge pull request #77 from Gcenx/master
Add a GitHub action to test building for macOS
2021-03-07 13:14:15 +11:00
Dean M Greer
bbebe570f3 Create macOS.yml 2021-03-06 07:11:22 -05:00
Zebediah Figura
89c049ee68 ntdll-Junction_Points: Updates from Erich E. Hoover. 2021-03-05 21:27:36 -06:00
Zebediah Figura
f4cb879b3d ntdll-NtAlertThreadByThreadId: Include mach/mach.h in unix_private.h.
Thanks to Dean Greer for finding this one.
2021-03-05 21:24:30 -06:00
Zebediah Figura
cb2a6e06e1 Rebase against 5bccf6fc3f309207ef4162df335157649f627f50. 2021-03-05 21:21:19 -06:00
Zebediah Figura
3a33c70a9a Rebase against 31af1aeb7895bddf59a73886b89759f76881bc9e. 2021-03-04 17:50:31 -06:00
Alistair Leslie-Hughes
64efb6f0d3 Added ntdll-RtlFirstFreeAce patchset 2021-03-04 12:06:54 +11:00
Alistair Leslie-Hughes
404b698d44 Rebase against 6d5659103f49db9e045087dd0093acc3b9a4b919. 2021-03-04 11:24:46 +11:00
Erich E. Hoover
a2ca43d98b ntdll-Junction_Points: Fix compilation on MacOS. 2021-03-02 20:26:41 -06:00
Zebediah Figura
0b1ffe4b94 Rebase against 7fa74fa78e2f8fedeea6fa3c796f0f2eb202825e. 2021-03-02 20:22:19 -06:00
Zebediah Figura
5d8901ac21 ntdll-set_full_cpu_context: Remove patch set.
These prefixes are redundant. We're restoring the context from 32-bit code, so
%ss = %ds already, and if we're on this side of the code then our %ss = the
target %ss.

Still, why was the patch written?

Before 44fbc018ed, there was a single path to restore contexts, and it looked
like this:

    output( "2:\tpushl 0x94(%%ecx)\n");     /* SegEs */
    output( "\tpopl %%es\n" );
    output( "\tpushl 0x90(%%ecx)\n");       /* SegFs */
    output( "\tpopl %%fs\n" );
    output( "\tpushl 0x8c(%%ecx)\n");       /* SegGs */
    output( "\tpopl %%gs\n" );

    output( "\tmovl 0x9c(%%ecx),%%edi\n");  /* Edi */
    output( "\tmovl 0xa0(%%ecx),%%esi\n");  /* Esi */
    output( "\tmovl 0xa8(%%ecx),%%edx\n");  /* Edx */
    output( "\tmovl 0xa4(%%ecx),%%ebx\n");  /* Ebx */
    output( "\tmovl 0xb0(%%ecx),%%eax\n");  /* Eax */
    output( "\tmovl 0xb4(%%ecx),%%ebp\n");  /* Ebp */

    output( "\tpushl 0xc8(%%ecx)\n");       /* SegSs */
    output( "\tpopl %%ss\n" );
    output( "\tmovl 0xc4(%%ecx),%%esp\n");  /* Esp */

    output( "\tpushl 0xc0(%%ecx)\n");       /* EFlags */
    output( "\tpushl 0xbc(%%ecx)\n");       /* SegCs */
    output( "\tpushl 0xb8(%%ecx)\n");       /* Eip */
    output( "\tpushl 0x98(%%ecx)\n");       /* SegDs */
    output( "\tmovl 0xac(%%ecx),%%ecx\n");  /* Ecx */

    output( "\tpopl %%ds\n" );
    output( "\tiret\n" );

Very simple: we restore most registers (but not %ds), then switch stacks, then
push control registers and %ds to the current (target) stack, then pop %ds and
iret.

This was vulnerable to signal races:

+    /* As soon as we have switched stacks the context structure could
+     * be invalid (when signal handlers are executed for example). Copy
+     * values on the target stack before changing ESP. */

so 44fbc018ed changed the path to a different one:

    output( "\tpushl 0xc8(%%ecx)\n" );      /* SegSs */
    output( "\tpopl %%es\n" );
    output( "\tmovl 0xc4(%%ecx),%%eax\n" ); /* Esp */
    output( "\tleal -4*4(%%eax),%%eax\n" );

    output( "\tmovl 0xc0(%%ecx),%%edx\n" ); /* EFlags */
    output( "\t.byte 0x26\n\tmovl %%edx,3*4(%%eax)\n" );
    output( "\tmovl 0xbc(%%ecx),%%edx\n" ); /* SegCs */
    output( "\t.byte 0x26\n\tmovl %%edx,2*4(%%eax)\n" );
    output( "\tmovl 0xb8(%%ecx),%%edx\n" ); /* Eip */
    output( "\t.byte 0x26\n\tmovl %%edx,1*4(%%eax)\n" );
    output( "\tmovl 0xb0(%%ecx),%%edx\n" ); /* Eax */
    output( "\t.byte 0x26\n\tmovl %%edx,0*4(%%eax)\n" );

    output( "\tpushl %%es\n" );
    output( "\tpushl 0x98(%%ecx)\n" );      /* SegDs */

    output(" \tpushl 0x94(%%ecx)\n" );      /* SegEs */
    output( "\tpopl %%es\n" );
    output( "\tpushl 0x90(%%ecx)\n");       /* SegFs */
    output( "\tpopl %%fs\n" );
    output( "\tpushl 0x8c(%%ecx)\n");       /* SegGs */
    output( "\tpopl %%gs\n" );

    output( "\tmovl 0x9c(%%ecx),%%edi\n" ); /* Edi */
    output( "\tmovl 0xa0(%%ecx),%%esi\n" ); /* Esi */
    output( "\tmovl 0xa4(%%ecx),%%ebx\n" ); /* Ebx */
    output( "\tmovl 0xa8(%%ecx),%%edx\n" ); /* Edx */
    output( "\tmovl 0xb4(%%ecx),%%ebp\n" ); /* Ebp */
    output( "\tmovl 0xac(%%ecx),%%ecx\n" ); /* Ecx */

    output( "\tpopl %%ds\n" );
    output( "\tpopl %%ss\n" );
    output( "\tmovl %%eax,%%esp\n" );

    output( "\tpopl %%eax\n" );
    output( "\tiret\n" );

That is, we set %es to the target %ss, write control regs onto the target stack
using %es, switch to the target stack, then pop + iret. In this case the %es
overrides make perfect sense: the target stack might be different from ours
(i.e. we are returning to 16-bit code).

Evidently this was invalid:

+    /* Restore the context when the stack segment changes. We can't use
+     * the same code as above because we do not know if the stack segment
+     * is 16 or 32 bit, and 'movl' will throw an exception when we try to
+     * access memory above the limit. */

In 4c8b3f63be1 slackner introduced two different paths. If we need to switch
stacks, we use the original path. (I think it's still vulnerable to signal
races, but we have no way of preventing those.) Meanwhile the other path can be
simplified a bit, since we're already on the target stack:

-    output( "\tpushl 0xc8(%%ecx)\n" );      /* SegSs */
-    output( "\tpopl %%es\n" );
     output( "\tmovl 0xc4(%%ecx),%%eax\n" ); /* Esp */
     output( "\tleal -4*4(%%eax),%%eax\n" );

     output( "\tmovl 0xc0(%%ecx),%%edx\n" ); /* EFlags */
-    output( "\t.byte 0x26\n\tmovl %%edx,3*4(%%eax)\n" );
+    output( "\t.byte 0x36\n\tmovl %%edx,3*4(%%eax)\n" );
     output( "\tmovl 0xbc(%%ecx),%%edx\n" ); /* SegCs */
-    output( "\t.byte 0x26\n\tmovl %%edx,2*4(%%eax)\n" );
+    output( "\t.byte 0x36\n\tmovl %%edx,2*4(%%eax)\n" );
     output( "\tmovl 0xb8(%%ecx),%%edx\n" ); /* Eip */
-    output( "\t.byte 0x26\n\tmovl %%edx,1*4(%%eax)\n" );
+    output( "\t.byte 0x36\n\tmovl %%edx,1*4(%%eax)\n" );
     output( "\tmovl 0xb0(%%ecx),%%edx\n" ); /* Eax */
-    output( "\t.byte 0x26\n\tmovl %%edx,0*4(%%eax)\n" );
+    output( "\t.byte 0x36\n\tmovl %%edx,0*4(%%eax)\n" );

-    output( "\tpushl %%es\n" );
     output( "\tpushl 0x98(%%ecx)\n" );      /* SegDs */

@@ -890,11 +889,37 @@ static void build_call_from_regs_x86(void)
     output( "\tmovl 0xac(%%ecx),%%ecx\n" ); /* Ecx */

     output( "\tpopl %%ds\n" );
-    output( "\tpopl %%ss\n" );
     output( "\tmovl %%eax,%%esp\n" );

     output( "\tpopl %%eax\n" );
     output( "\tiret\n" );

Sebastian got rid of the setting of %es, and replaced the %es prefixes with %ss
prefixes. What I think happened is that he made a subtle mistake—or, well, not a
mistake, but a redundancy. %es: was changed to %ss: by analogy, but it's
actually not necessary: we're operating on the source stack, and we know the
source stack is 32-bit, and we haven't set %ds yet, so %ds == %ss already, and
we can use the %implicit %ds prefix.

Alexandre presumably saw this in bab6ece63, and silently removed them. My guess
is that Sebastian saw that, wasn't sure, but (in the best case) didn't want to
submit his fix upstream until he had checked whether it was actually correct,
and never got around to checking. (Alternatively, he thought that the %ss should
have been retained for clarity, and decided not to try to submit that upstream.)
2021-03-02 20:22:01 -06:00
Zebediah Figura
6b24c39d32 Rebase against 3c2db20f66806074b047b0b3c76aa86ad79e3175. 2021-03-01 16:31:44 -06:00
Zebediah Figura
15f4220e49 Fix some whitespace errors. 2021-02-28 15:17:57 -06:00
Zebediah Figura
b0ddfb4172 Remove obsolete dependencies from some definition files. 2021-02-28 15:09:58 -06:00
Zebediah Figura
0fb17feeaa ntdll-NtQueryVirtualMemory: Remove patch 0007.
K32GetMappedFileName() is implemented upstream now.
2021-02-28 15:06:13 -06:00
Zebediah Figura
ba02aa0e4d ntdll-NtAlertThreadByThreadId: Restore the NTDLL_UNIXLIB_VERSION changes. 2021-02-27 17:16:06 -06:00
Alistair Leslie-Hughes
e83fdffe77 Release v6.3 2021-02-27 17:52:14 +11:00
Zebediah Figura
750044c08c ntdll-Junction_Points: Updates from Erich E. Hoover.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50586
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50285
2021-02-27 00:07:31 -06:00
Zebediah Figura
dfc989712e server-default_integrity: Support the "runas" verb, and set EnableLUA to 1.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50727
2021-02-26 22:47:31 -06:00
Zebediah Figura
783002b5de Rebase against 0f972e2247932f255f131792724e4796b4b2b87a. 2021-02-26 22:46:07 -06:00
Zebediah Figura
806bbc0198 wow64cpu-Wow64Transition: Fix rebase. 2021-02-25 21:40:19 -06:00
Zebediah Figura
e4debaae9b Rebase against 35e43ccf1b42e9f67d7765753f0c3ef8cf102c46. 2021-02-25 21:04:11 -06:00
Alistair Leslie-Hughes
9a7b25dfd2 Rebase against 1649389edca12d2998f72a159b2bbbf247176163. 2021-02-25 10:39:29 +11:00
Alistair Leslie-Hughes
43a3110e95 Rebase against 4981785f0fbcafbdc6a9dc4f71d06b137d558597.
This rebase is affected by the same upstream bug.
https://bugs.winehq.org/show_bug.cgi?id=50713
2021-02-23 13:31:24 +11:00
Zebediah Figura
0d3a7a3596 nvapi-Stub_DLL: Build nvapi and nvapi64 with msvcrt. 2021-02-21 14:25:13 -06:00
Zebediah Figura
101e672955 api-ms-win-Stub_DLLs: Build iertutil with msvcrt. 2021-02-21 14:25:13 -06:00
Zebediah Figura
29ce68fa31 api-ms-win-Stub_DLLs: Use --prefer-native instead of DLL_WINE_PREATTACH. 2021-02-21 14:01:58 -06:00
Zebediah Figura
3486cceeba nvcuda-CUDA_Support: Don't temporarily prefer native. 2021-02-21 13:58:51 -06:00
Zebediah Figura
37fa6ccbbd packager-DllMain: Use --prefer-native instead of DLL_WINE_PREATTACH. 2021-02-21 13:55:56 -06:00
Zebediah Figura
9aeea5d12e Rebase against 4de079bb7247c8b849558c0f27a280a9546c5570. 2021-02-19 19:32:08 -06:00
Zebediah Figura
aa8a3d90cb Rebase against b8719736c5a022fa9c50f64adfc3ef58b40460f2. 2021-02-18 20:16:43 -06:00
Zebediah Figura
811467bf6a server-default_integrity: New patch set.
This patch set, as an alternative approach to advapi32-Token_Integrity_Level,
creates all processes as a limited administrator by default. This doesn't
actually seem to break most applications, apparently since they assume that
their manifest is enough to force them to run as administrator and don't bother
verifying that's what they get, and since we don't actually prevent accessing
low-integrity objects. I'm adding this patch to wine-staging in order to smoke
out any applications that might be broken, as it's still a very risky patch.
2021-02-17 20:57:47 -06:00
Zebediah Figura
2a9a56c4d0 Rebase against c6a3072051fb88edd3847c750c2ec852f11870f6. 2021-02-17 20:40:31 -06:00
Alistair Leslie-Hughes
d0873d2c72 Rebase against a55a37d1dae2231d8dec9f3191449f89be0b10dc. 2021-02-17 09:56:43 +11:00
Alistair Leslie-Hughes
4046ffe6c9 Rebase against a9c8196e97ec255f4f69d005ea1cbf8fcf2537e8. 2021-02-16 11:02:22 +11:00
Alistair Leslie-Hughes
3b5ea332d6 Release v6.2 2021-02-13 17:25:34 +11:00
Alistair Leslie-Hughes
81e3e6dafa Rebase against 4f7e621dc58fd82924e64c695dc61a78c55fd44e. 2021-02-13 17:11:37 +11:00
Alistair Leslie-Hughes
41cb9f5179 Rebase against b922b5aeef18fd30b13a4e86c115d68e505c9393. 2021-02-12 11:53:19 +11:00
Zebediah Figura
41e15516bd Rebase against 2d6b0b67d91b6433744ec859b10b8ee8eb4a37b3. 2021-02-10 19:45:27 -06:00
Zebediah Figura
6347bdd1fc Rebase against 7a9745022b1bfcc235b922be98a8fdc91976c587. 2021-02-08 16:01:40 -06:00
Zebediah Figura
677b445b0d Rebase against 4f1b297a14bbd304fb20da7c4b64266c14d110e5. 2021-02-05 18:01:09 -06:00
Zebediah Figura
a2f82c5c85 Rebase against dd417540bb3afb3aa5a04a007eea9a7ee347655b. 2021-02-04 17:28:33 -06:00
Zebediah Figura
cfe1b94e0f ntdll-Junction_Points: Updates from Erich E. Hoover. 2021-02-03 19:44:26 -06:00
Zebediah Figura
2be4bfb8fe Rebase against 2201ca08fb03d069fa2ccf46773c150a6f7988bc. 2021-02-03 16:10:49 -06:00
Alistair Leslie-Hughes
cae1b3eba0 Rebase against 433b9081ba7c862feb947400f507228e793d7d4c. 2021-02-03 10:11:33 +11:00
Alistair Leslie-Hughes
32b29ad4d8 Updated xactengine3_7-Notification patchset 2021-02-02 11:34:34 +11:00
Alistair Leslie-Hughes
a6054cf2e9 Rebase against cfbbde2abce1eedc7f53db3f8af8078fe4a11cac. 2021-02-02 10:51:17 +11:00
Alistair Leslie-Hughes
f6dacd2f9a Release v6.1 2021-01-31 19:09:00 +11:00
Alistair Leslie-Hughes
43c064ef3c Rebase against 47ac628b4a4e476c1b044765c95d5be2a7101d14. 2021-01-31 18:52:51 +11:00
Alistair Leslie-Hughes
5c5a8f3b2c Rebase against f72ef20e88fba67254caf0124ab8713e3d15fa2a. 2021-01-29 11:11:41 +11:00
Alistair Leslie-Hughes
bd135b1477 Updated xactengine3_7-Notification patchset 2021-01-28 13:24:47 +11:00
Alistair Leslie-Hughes
9692b2e5eb Rebase against 24b9203d3544001dd51894f1c1edd99819367198. 2021-01-28 09:08:29 +11:00
Alistair Leslie-Hughes
bcf5899a3c Drop ntdll-Interrupt-0x2e patchset
The program itself later updated not to use that interrupt, and nobody seems to have an old copy of it.
2021-01-27 11:19:20 +11:00
Alistair Leslie-Hughes
73480ec459 Rebase against c1824d578ac514d29e79a5a00d6759f11dbe4813. 2021-01-27 11:13:11 +11:00
Alistair Leslie-Hughes
fd3372e71c Rebase against 2d6462cdee2bd87a49382794e5a554f33c367f09. 2021-01-26 15:37:12 +11:00
Alistair Leslie-Hughes
3dec70bf32 Updated dsound-EAX patchset 2021-01-25 19:18:14 +11:00
Zebediah Figura
b201ee708b ntdll-NtAlertThreadByThreadId: Various fixes for Mac compilation from Gijs Vermeulen. 2021-01-24 21:49:17 -06:00
Alistair Leslie-Hughes
74534094a0 Added xactengine3_7-Notification patchset 2021-01-23 18:15:12 +11:00
Alistair Leslie-Hughes
1830eaa655 Updated msxml3-FreeThreadedXMLHTTP60 patchset
Moved coclass inside the library to ensure it's registered correctly.
2021-01-23 17:30:52 +11:00
Alistair Leslie-Hughes
f168899ce1 Rebase against 2d4dd4252b0cf6526b3cc8194cce642b16eb12f6. 2021-01-23 11:32:31 +11:00
Zebediah Figura
f8ce6cbb21 ntdll-NtAlertThreadByThreadId: Add explicit memory barriers.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50448
2021-01-21 23:32:19 -06:00
Zebediah Figura
64877514fb Rebase against 158a9e738421cd16f2e8296f11baa724c64c8ca7. 2021-01-21 17:44:50 -06:00
Alistair Leslie-Hughes
310072bb63 Updated mfplat-streaming-support patchset 2021-01-21 14:28:59 +11:00
Alistair Leslie-Hughes
2f619b2a53 Rebase against a952453888fb5df3c70edf357820bc924b4f3e7f. 2021-01-21 12:00:14 +11:00
Alistair Leslie-Hughes
76f8eb15f1 Added imm32-com-initialization patchset 2021-01-20 16:13:06 +11:00
Alistair Leslie-Hughes
6364ada0ad Rebase against 04a9c9eba77f56d61d615f1147590c67b466bdf8. 2021-01-20 10:56:34 +11:00
Alistair Leslie-Hughes
caa2471e20 Rebase against 88220e0ee41640940e7686fe0cab7f1e0bfb42f1. 2021-01-19 11:50:03 +11:00
Alistair Leslie-Hughes
2414b1da6a Release v6.0 2021-01-15 07:40:07 +11:00
Alistair Leslie-Hughes
7ab49f09a2 Release v6.0-rc6 2021-01-09 10:12:38 +11:00
Alistair Leslie-Hughes
a3d08de2b8 Rebase against 7d3186e029fb4cf417fab59483a37d8aece95b5d. 2021-01-09 09:59:05 +11:00
Alistair Leslie-Hughes
1c969cbbed Rebase against 9bc3a9f78bf5e6a09d4e9811f645def4a477f3d0. 2021-01-08 10:04:17 +11:00
Alistair Leslie-Hughes
0e7472e7a3 Added dsound-localder patchset 2021-01-07 13:22:54 +11:00
Alistair Leslie-Hughes
f3e785a3a8 Rebase against 4ac05afd39aff3030e3379ee06e32d6544ef5d62. 2021-01-07 13:15:41 +11:00
Zebediah Figura
dfddef9654 ntdll-NtAlertThreadByThreadId: Reset a thread's Win32 futex entry when waking it.
Avoid a race where two simultaneous calls to RtlWakeAddressSingle() wake the same address.
2021-01-05 19:53:40 -06:00
Alistair Leslie-Hughes
d87ec36ccf Rebase against 221fdb09b4c20da45e9834aa0cae27dcc75ea27b. 2021-01-05 09:57:51 +11:00
Alistair Leslie-Hughes
a3710ff21f Release v6.0-rc5 2021-01-03 10:25:03 +11:00
Alistair Leslie-Hughes
0e67af3d09 Updated dsound-EAX patchset
Enable this feature by default, to allow for more testing.
2021-01-01 13:48:55 +11:00
Zebediah Figura
8b1e0eec1d ntdll-NtAlertThreadByThreadId: Free the address wait entry on thread exit. 2020-12-28 12:36:15 -06:00
Zebediah Figura
b8ca0eae9f ntdll-NtAlertThreadByThreadId: Use a lock-free (list of) arrays to map thread IDs to addresses. 2020-12-28 12:22:10 -06:00
Alistair Leslie-Hughes
350eb136a5 Release v6.0-rc4 2020-12-27 10:59:24 +11:00
Alistair Leslie-Hughes
f40763d8a5 Updated dxdiag-new-dlls patchset 2020-12-27 10:03:16 +11:00
Alistair Leslie-Hughes
4462586c80 Updated mfplat-streaming-support patchset 2020-12-27 10:03:16 +11:00
Zebediah Figura
aae98229b0 libs-Unicode_Collation: Add another bug reference. 2020-12-25 14:02:42 -06:00
Zebediah Figura
7ad10427be server-File_Permissions: Clarify patch 0008 (DACL mapping) a bit.
This code should be effectively identical, but it makes the diff against
upstream a bit clearer.
2020-12-21 22:04:22 -06:00
Alistair Leslie-Hughes
9912133b6a Release v6.0-rc3 2020-12-19 14:48:29 +11:00
Alistair Leslie-Hughes
14450482bc Updated mfplat-streaming-support patchset 2020-12-19 13:09:14 +11:00
Alistair Leslie-Hughes
a8947d8016 Rebase against 0aa6f8e2ea1e3f2e852bef1a07d0d1f983870150. 2020-12-19 12:29:38 +11:00
Alistair Leslie-Hughes
a5a402a003 Added ntdll-RtlQueryProcessPlaceholderCompatibilityMode patchset 2020-12-18 09:44:36 +11:00
Alistair Leslie-Hughes
2505882bc6 Rebase against 0aa6f8e2ea1e3f2e852bef1a07d0d1f983870150. 2020-12-18 09:21:49 +11:00
Alistair Leslie-Hughes
760b2fbc35 Updated widl-winrt-support patchset 2020-12-18 08:06:29 +11:00
Zebediah Figura
909415c8d0 setupapi-DiskSpaceList: Add a bug reference. 2020-12-17 14:50:58 -06:00
Alistair Leslie-Hughes
5cd622f667 Added dxdiag-new-dlls patchset 2020-12-17 20:57:15 +11:00
Alistair Leslie-Hughes
4004f81390 Added odbccp32-SQLWriteDSNToIni patchset 2020-12-17 10:01:37 +11:00
Alistair Leslie-Hughes
28c6e62cb9 Added d3drm-IDirect3D3-support patchset 2020-12-17 09:46:35 +11:00
Alistair Leslie-Hughes
df37ef7599 Updated mfplat-streaming-support patchset
Restore file.
2020-12-17 09:37:21 +11:00
Alistair Leslie-Hughes
3b4ce945a6 Updated dxva2-Video_Decoder patchset 2020-12-17 08:14:07 +11:00
Alistair Leslie-Hughes
6d67766abd Updated mfplat-streaming-support patchset 2020-12-17 07:44:48 +11:00
Paul Gofman
143e59bfe2 Updated bcrypt-ECDHSecretAgreement patchset.
Also fix fallback function table and backend function resolution.
2020-12-16 16:23:54 +03:00
Paul Gofman
7dbce711de Updated ntdll-Syscall_Emulation patchset. 2020-12-16 12:08:17 +03:00
Paul Gofman
53bbade133 Updated bcrypt-ECDHSecretAgreement patchset.
Update key_funcs[] in gcrypt.c and thus fix the crash
on attempt to compute ECDH secret agreement.
2020-12-16 00:30:51 +03:00
Alistair Leslie-Hughes
fe5b02cbbc Rebase against 04ddabfdff644561adf0e36050db1bbc63cad83a. 2020-12-15 10:55:34 +11:00
Paul Gofman
abb7ae8b1c Updated and reenabled ntdll-NtQueryVirtualMemory patchset. 2020-12-15 00:53:49 +03:00
Alistair Leslie-Hughes
0fc2f15ac5 Updated Staging patchset
Restore file removed by mistake.
2020-12-14 15:33:15 +11:00
Alistair Leslie-Hughes
c646dc9283 Release v6.0-rc2 2020-12-13 14:02:53 +11:00
Alistair Leslie-Hughes
d0b0b5be24 Updated ntdll-Junction_Points patchset
Fixes: https://bugs.winehq.org/show_bug.cgi?id=50303
2020-12-13 13:18:23 +11:00
Alistair Leslie-Hughes
8cbc70df46 Disable ntdll-NtAlertThreadByThreadId patchset
This patchset is causing applications to freeze on startup (intermittently).

Disabled until the root cause can be fixed.
2020-12-13 09:08:36 +11:00
Alistair Leslie-Hughes
a8684593e2 Updated mfplat-streaming-support patchset 2020-12-13 08:44:17 +11:00
Alistair Leslie-Hughes
e015f0590c Updated mfplat-streaming-support patchset
Godfall intro movie playback - Still crashes though if you dont click to skip before it ends.
2020-12-10 17:15:10 +11:00
Alistair Leslie-Hughes
dea57ccd5f Revert "Updated mfplat-streaming-support patchset"
This update cause regressions with UE4 based games.

This reverts commit 3511fe03ee.
2020-12-10 17:15:10 +11:00
Zebediah Figura
fd8727a320 eventfd_synchronization: Try harder to make sure hunks are applied in the right place.
As of dc77e28 hunks were getting swapped when applied after ntdll-NtAlertThreadByThreadId. Spotted by Etienne Juvigny.
2020-12-09 23:38:36 -06:00
Zebediah Figura
dc77e28b0f ntdll-NtAlertThreadByThreadId: New patch set. 2020-12-08 20:56:56 -06:00
Zebediah Figura
213037cb33 libs-Unicode_Collation: Replace with new patches from Fabian Maurer. 2020-12-08 20:14:26 -06:00
Zebediah Figura
fce121fcd9 ntdll-Junction_Points: Do not use O_SYMLINK if it is not defined.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50255
2020-12-05 22:16:49 -06:00
Zebediah Figura
2dc013940d ntdll-DOS_Attributes: Restore a definition for FreeBSD. 2020-12-05 21:48:19 -06:00
Zebediah Figura
8229c98169 server-Stored_ACLs: Define xattr_valid_namespace() where it's first used. 2020-12-05 21:46:14 -06:00
577 changed files with 18463 additions and 48719 deletions

13
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,13 @@
# These are supported funding model platforms
#github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
#patreon: # Replace with a single Patreon username
#open_collective: # Replace with a single Open Collective username
#ko_fi: # Replace with a single Ko-fi username
#tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
#community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
#liberapay: # Replace with a single Liberapay username
#issuehunt: # Replace with a single IssueHunt username
#otechie: # Replace with a single Otechie username
patreon: winestaging

129
.github/workflows/macOS.yml vendored Normal file
View File

@@ -0,0 +1,129 @@
name: MacOS
on:
push:
pull_request:
workflow_dispatch:
jobs:
wine-staging:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
brew update
brew install --cask xquartz
brew install bison \
faudio \
gphoto2 \
gst-plugins-base \
jxrlib \
little-cms2 \
mingw-w64 \
molten-vk \
mpg123
- name: Add bison & krb5 to $PATH
run: |
set -eu
echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
echo "$(brew --prefix krb5)/bin" >> $GITHUB_PATH
- name: Get upstream-commit
run: |
mkdir $GITHUB_WORKSPACE/wine
cd wine
git init
git fetch git://source.winehq.org/git/wine.git $($GITHUB_WORKSPACE/patches/patchinstall.sh --upstream-commit) --depth=1
git checkout $($GITHUB_WORKSPACE/patches/patchinstall.sh --upstream-commit)
- name: Run patchinstall.sh --all
run: |
$GITHUB_WORKSPACE/patches/patchinstall.sh DESTDIR=$GITHUB_WORKSPACE/wine --all
- name: Configure wine64
env:
LDFLAGS: "-Wl,-rpath,/opt/X11/lib"
# Avoid weird linker errors with Xcode 10 and later
MACOSX_DEPLOYMENT_TARGET: "10.14"
run: |
cd $GITHUB_WORKSPACE/wine
./configure --enable-win64 \
--without-alsa \
--without-capi \
--without-dbus \
--without-inotify \
--without-oss \
--without-pulse \
--without-udev \
--without-v4l2 \
--x-include=/opt/X11/include \
--x-lib=/opt/X11/lib
- name: Build wine64
run: |
cd $GITHUB_WORKSPACE/wine
make -j$(sysctl -n hw.ncpu 2>/dev/null)
wine-devel:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
brew update
brew install --cask xquartz
brew install bison \
faudio \
gphoto2 \
gst-plugins-base \
jxrlib \
little-cms2 \
mingw-w64 \
molten-vk \
mpg123
- name: Add bison & krb5 to $PATH
run: |
set -eu
echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
echo "$(brew --prefix krb5)/bin" >> $GITHUB_PATH
- name: Get upstream-commit
run: |
mkdir $GITHUB_WORKSPACE/wine
cd wine
git init
git fetch git://source.winehq.org/git/wine.git $($GITHUB_WORKSPACE/patches/patchinstall.sh --upstream-commit) --depth=1
git checkout $($GITHUB_WORKSPACE/patches/patchinstall.sh --upstream-commit)
- name: Configure wine64
env:
LDFLAGS: "-Wl,-rpath,/opt/X11/lib"
# Avoid weird linker errors with Xcode 10 and later
MACOSX_DEPLOYMENT_TARGET: "10.14"
run: |
cd $GITHUB_WORKSPACE/wine
cd $GITHUB_WORKSPACE/wine
./configure --enable-win64 \
--without-alsa \
--without-capi \
--without-dbus \
--without-inotify \
--without-oss \
--without-pulse \
--without-udev \
--without-v4l2 \
--x-include=/opt/X11/include \
--x-lib=/opt/X11/lib
- name: Build wine64
run: |
cd $GITHUB_WORKSPACE/wine
make -j$(sysctl -n hw.ncpu 2>/dev/null)

View File

@@ -0,0 +1,34 @@
From d94124650cd292dfdc364c43f117d35eecce39bf Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 8 Jun 2021 09:10:37 +1000
Subject: [PATCH] ntdll: Avoid implicit cast of interface pointer.
---
dlls/ntdll/unix/virtual.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index b7531c1bdb7..97c5b741776 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -3162,7 +3162,7 @@ NTSTATUS virtual_clear_tls_index( ULONG index )
server_enter_uninterrupted_section( &virtual_mutex, &sigset );
LIST_FOR_EACH_ENTRY( thread_data, &teb_list, struct ntdll_thread_data, entry )
{
- TEB *teb = CONTAINING_RECORD( thread_data, TEB, GdiTebBatch );
+ TEB *teb = CONTAINING_RECORD( (GDI_TEB_BATCH *)thread_data, TEB, GdiTebBatch );
teb->TlsSlots[index] = 0;
}
server_leave_uninterrupted_section( &virtual_mutex, &sigset );
@@ -3176,7 +3176,7 @@ NTSTATUS virtual_clear_tls_index( ULONG index )
server_enter_uninterrupted_section( &virtual_mutex, &sigset );
LIST_FOR_EACH_ENTRY( thread_data, &teb_list, struct ntdll_thread_data, entry )
{
- TEB *teb = CONTAINING_RECORD( thread_data, TEB, GdiTebBatch );
+ TEB *teb = CONTAINING_RECORD( (GDI_TEB_BATCH *)thread_data, TEB, GdiTebBatch );
if (teb->TlsExpansionSlots) teb->TlsExpansionSlots[index] = 0;
}
server_leave_uninterrupted_section( &virtual_mutex, &sigset );
--
2.30.2

View File

@@ -0,0 +1,40 @@
From 7784b62bd2b64aabd6bfef9ef39ac4f3e8c55c77 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 8 Jun 2021 08:56:40 +1000
Subject: [PATCH] bcrypt: Stop compile error when HAVE_GNUTLS_CIPHER_INIT not
defined
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In file included from dlls/bcrypt/gnutls.c:1916:
include/windef.h:112:24: error: unknown type name va_list
112 | # define __ms_va_list va_list
| ^~~~~~~
include/winbase.h:2076:84: note: in expansion of macro __ms_va_list
2076 | WINBASEAPI DWORD WINAPI FormatMessageA(DWORD,LPCVOID,DWORD,DWORD,LPSTR,DWORD,__ms_va_list*);
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/bcrypt/gnutls.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c
index 37a80bdc062..64825f5b99b 100644
--- a/dlls/bcrypt/gnutls.c
+++ b/dlls/bcrypt/gnutls.c
@@ -25,9 +25,10 @@
#include "config.h"
#include "wine/port.h"
+#include <stdarg.h>
+
#ifdef HAVE_GNUTLS_CIPHER_INIT
-#include <stdarg.h>
#include <assert.h>
#include <gnutls/gnutls.h>
#include <gnutls/crypto.h>
--
2.30.2

View File

@@ -0,0 +1,61 @@
From 990050ed436283fb820d4fe64b08dda3ac7ea9e2 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 8 Jun 2021 09:34:28 +1000
Subject: [PATCH 2/2] d3d10: Avoid implicit cast of interface pointer.
---
dlls/d3d10/effect.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c
index 86ef50aac01..060fb69ce3e 100644
--- a/dlls/d3d10/effect.c
+++ b/dlls/d3d10/effect.c
@@ -126,7 +126,7 @@ static inline struct d3d10_effect_variable *impl_from_ID3D10EffectVariable(ID3D1
static inline struct d3d10_effect_variable *impl_from_ID3D10EffectShaderVariable(ID3D10EffectShaderVariable *iface)
{
- return CONTAINING_RECORD(iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
+ return CONTAINING_RECORD((ID3D10EffectVariable*)iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
}
struct d3d10_effect_state_property_info
@@ -4665,7 +4665,7 @@ static void read_variable_array_from_buffer(struct d3d10_effect_variable *variab
static inline struct d3d10_effect_variable *impl_from_ID3D10EffectScalarVariable(ID3D10EffectScalarVariable *iface)
{
- return CONTAINING_RECORD(iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
+ return CONTAINING_RECORD((ID3D10EffectVariable*)iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
}
static BOOL STDMETHODCALLTYPE d3d10_effect_scalar_variable_IsValid(ID3D10EffectScalarVariable *iface)
@@ -5001,7 +5001,7 @@ static const struct ID3D10EffectScalarVariableVtbl d3d10_effect_scalar_variable_
static inline struct d3d10_effect_variable *impl_from_ID3D10EffectVectorVariable(ID3D10EffectVectorVariable *iface)
{
- return CONTAINING_RECORD(iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
+ return CONTAINING_RECORD((ID3D10EffectVariable*)iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
}
static BOOL STDMETHODCALLTYPE d3d10_effect_vector_variable_IsValid(ID3D10EffectVectorVariable *iface)
@@ -5488,7 +5488,7 @@ static void read_matrix_variable_array_from_buffer(struct d3d10_effect_variable
static inline struct d3d10_effect_variable *impl_from_ID3D10EffectMatrixVariable(ID3D10EffectMatrixVariable *iface)
{
- return CONTAINING_RECORD(iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
+ return CONTAINING_RECORD((ID3D10EffectVariable*)iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
}
static BOOL STDMETHODCALLTYPE d3d10_effect_matrix_variable_IsValid(ID3D10EffectMatrixVariable *iface)
@@ -5995,7 +5995,7 @@ static void set_shader_resource_variable(ID3D10ShaderResourceView **src, ID3D10S
static inline struct d3d10_effect_variable *impl_from_ID3D10EffectShaderResourceVariable(
ID3D10EffectShaderResourceVariable *iface)
{
- return CONTAINING_RECORD(iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
+ return CONTAINING_RECORD((ID3D10EffectVariable*)iface, struct d3d10_effect_variable, ID3D10EffectVariable_iface);
}
static BOOL STDMETHODCALLTYPE d3d10_effect_shader_resource_variable_IsValid(ID3D10EffectShaderResourceVariable *iface)
--
2.30.2

View File

@@ -0,0 +1,34 @@
From dd8e8e98edf2f16a4fd4109cd283cf7949a3cb9b Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 8 Jun 2021 09:39:56 +1000
Subject: [PATCH] d2d1: Avoid implicit cast of interface pointer.
---
dlls/d2d1/geometry.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/d2d1/geometry.c b/dlls/d2d1/geometry.c
index eb353669030..3e00edfd1b3 100644
--- a/dlls/d2d1/geometry.c
+++ b/dlls/d2d1/geometry.c
@@ -3615,7 +3615,7 @@ void d2d_path_geometry_init(struct d2d_geometry *geometry, ID2D1Factory *factory
static inline struct d2d_geometry *impl_from_ID2D1EllipseGeometry(ID2D1EllipseGeometry *iface)
{
- return CONTAINING_RECORD(iface, struct d2d_geometry, ID2D1Geometry_iface);
+ return CONTAINING_RECORD((ID2D1Geometry*)iface, struct d2d_geometry, ID2D1Geometry_iface);
}
static HRESULT STDMETHODCALLTYPE d2d_ellipse_geometry_QueryInterface(ID2D1EllipseGeometry *iface,
@@ -4237,7 +4237,7 @@ fail:
static inline struct d2d_geometry *impl_from_ID2D1RoundedRectangleGeometry(ID2D1RoundedRectangleGeometry *iface)
{
- return CONTAINING_RECORD(iface, struct d2d_geometry, ID2D1Geometry_iface);
+ return CONTAINING_RECORD((ID2D1Geometry*)iface, struct d2d_geometry, ID2D1Geometry_iface);
}
static HRESULT STDMETHODCALLTYPE d2d_rounded_rectangle_geometry_QueryInterface(ID2D1RoundedRectangleGeometry *iface,
--
2.30.2

View File

@@ -0,0 +1,25 @@
From f8ce184f72c416a1ce249afe313b698013e961b3 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 8 Jun 2021 09:46:25 +1000
Subject: [PATCH] dxgi: Avoid implicit cast of interface pointer.
---
dlls/dxgi/output.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/dxgi/output.c b/dlls/dxgi/output.c
index f341388766c..64f87202741 100644
--- a/dlls/dxgi/output.c
+++ b/dlls/dxgi/output.c
@@ -711,7 +711,7 @@ struct dxgi_output *unsafe_impl_from_IDXGIOutput(IDXGIOutput *iface)
if (!iface)
return NULL;
assert(iface->lpVtbl == (IDXGIOutputVtbl *)&dxgi_output_vtbl);
- return CONTAINING_RECORD(iface, struct dxgi_output, IDXGIOutput6_iface);
+ return CONTAINING_RECORD((IDXGIOutput6*)iface, struct dxgi_output, IDXGIOutput6_iface);
}
static void dxgi_output_init(struct dxgi_output *output, unsigned int output_idx,
--
2.30.2

View File

@@ -0,0 +1,25 @@
From 272753daf4f20b7fe3c646eae4fd78f1b254c9a6 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 8 Jun 2021 09:57:01 +1000
Subject: [PATCH] msctf: Avoid implicit cast of interface pointer.
---
dlls/msctf/range.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/msctf/range.c b/dlls/msctf/range.c
index 9690a0a15c4..e15123eeb89 100644
--- a/dlls/msctf/range.c
+++ b/dlls/msctf/range.c
@@ -54,7 +54,7 @@ static inline Range *impl_from_ITfRangeACP(ITfRangeACP *iface)
static Range *unsafe_impl_from_ITfRange(ITfRange *iface)
{
- return CONTAINING_RECORD(iface, Range, ITfRangeACP_iface);
+ return CONTAINING_RECORD((ITfRangeACP*)iface, Range, ITfRangeACP_iface);
}
static void Range_Destructor(Range *This)
--
2.30.2

View File

@@ -0,0 +1,39 @@
From f34ee38467781b2f7bae7e7f8a04a4210bf7d046 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 8 Jun 2021 11:22:48 +1000
Subject: [PATCH] rpcrt4: Avoid implicit cast of interface pointer.
---
dlls/rpcrt4/ndr_marshall.c | 2 +-
dlls/rpcrt4/ndr_typelib.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/rpcrt4/ndr_marshall.c b/dlls/rpcrt4/ndr_marshall.c
index 764b304a047..58ea128e8a4 100644
--- a/dlls/rpcrt4/ndr_marshall.c
+++ b/dlls/rpcrt4/ndr_marshall.c
@@ -6999,7 +6999,7 @@ static unsigned char *WINAPI NdrContextHandleMarshall(
}
else
{
- NDR_SCONTEXT ctxt = CONTAINING_RECORD(pMemory, struct _NDR_SCONTEXT, userContext);
+ NDR_SCONTEXT ctxt = CONTAINING_RECORD((void * const*)pMemory, struct _NDR_SCONTEXT, userContext);
NDR_RUNDOWN rundown = pStubMsg->StubDesc->apfnNdrRundownRoutines[pFormat[2]];
NdrServerContextNewMarshall(pStubMsg, ctxt, rundown, pFormat);
}
diff --git a/dlls/rpcrt4/ndr_typelib.c b/dlls/rpcrt4/ndr_typelib.c
index f1f25885b75..126e8ec8766 100644
--- a/dlls/rpcrt4/ndr_typelib.c
+++ b/dlls/rpcrt4/ndr_typelib.c
@@ -1452,7 +1452,7 @@ struct typelib_stub
static ULONG WINAPI typelib_stub_Release(IRpcStubBuffer *iface)
{
- struct typelib_stub *stub = CONTAINING_RECORD(iface, struct typelib_stub, stub.stub_buffer);
+ struct typelib_stub *stub = CONTAINING_RECORD((CStdStubBuffer *)iface, struct typelib_stub, stub.stub_buffer);
ULONG refcount = InterlockedDecrement(&stub->stub.stub_buffer.RefCount);
TRACE("(%p) decreasing refs to %d\n", stub, refcount);
--
2.30.2

View File

@@ -0,0 +1,34 @@
From 4801b547b70654507cb8a25dcfd1efc862dcf467 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 8 Jun 2021 11:38:46 +1000
Subject: [PATCH] wbemdisp: Avoid implicit cast of interface pointer.
---
dlls/wbemdisp/locator.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/wbemdisp/locator.c b/dlls/wbemdisp/locator.c
index e0a1872d38f..5bb2a187f2c 100644
--- a/dlls/wbemdisp/locator.c
+++ b/dlls/wbemdisp/locator.c
@@ -1751,7 +1751,7 @@ static struct object *unsafe_object_impl_from_IDispatch(IDispatch *iface)
FIXME( "External implementations are not supported.\n" );
return NULL;
}
- return CONTAINING_RECORD(iface, struct object, ISWbemObject_iface);
+ return CONTAINING_RECORD((ISWbemObject *)iface, struct object, ISWbemObject_iface);
}
static HRESULT SWbemObject_create( struct services *services, IWbemClassObject *wbem_object,
@@ -3587,7 +3587,7 @@ static struct namedvalueset *unsafe_valueset_impl_from_IDispatch(IDispatch *ifac
FIXME( "External implementations are not supported.\n" );
return NULL;
}
- return CONTAINING_RECORD(iface, struct namedvalueset, ISWbemNamedValueSet_iface);
+ return CONTAINING_RECORD((ISWbemNamedValueSet*)iface, struct namedvalueset, ISWbemNamedValueSet_iface);
}
HRESULT SWbemNamedValueSet_create( void **obj )
--
2.30.2

View File

@@ -1,15 +1,15 @@
From 0cf6433af95363c5fbba2af482b2ba50b863dfb7 Mon Sep 17 00:00:00 2001
From e51b05c3a9d03e4dd84a107a30841d95f8a519c3 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 2 Oct 2014 19:44:31 +0200
Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging
branch name and version.
---
dlls/ntdll/loader.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
dlls/ntdll/loader.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 20bc3f977d1..c2187a19397 100644
index ee453700e51..c2d4b3c2f86 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -44,6 +44,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay);
@@ -20,15 +20,15 @@ index 20bc3f977d1..c2187a19397 100644
#ifdef _WIN64
#define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232)
@@ -3456,6 +3457,7 @@ static void process_breakpoint(void)
__ENDTRY
@@ -3307,6 +3308,7 @@ void WINAPI LdrShutdownProcess(void)
process_detach();
}
+extern const char * CDECL wine_get_version(void);
/******************************************************************
* LdrInitializeThunk (NTDLL.@)
@@ -3465,6 +3467,9 @@ static void process_breakpoint(void)
* RtlExitUserProcess (NTDLL.@)
@@ -3673,6 +3675,9 @@ static void init_wow64(void)
*/
void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR unknown3, ULONG_PTR unknown4 )
{
@@ -38,9 +38,9 @@ index 20bc3f977d1..c2187a19397 100644
static int attach_done;
int i;
NTSTATUS status;
@@ -3483,6 +3488,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
entry = (void **)&context->u.s.X0;
#endif
@@ -3753,6 +3758,17 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
}
else wm = get_modref( NtCurrentTeb()->Peb->ImageBaseAddress );
+ RtlInitUnicodeString( &staging_event_string, L"\\__wine_staging_warn_event" );
+ InitializeObjectAttributes( &staging_event_attr, &staging_event_string, OBJ_OPENIF, NULL, NULL );
@@ -52,9 +52,10 @@ index 20bc3f977d1..c2187a19397 100644
+ else
+ WARN_(winediag)("wine-staging %s is a testing version containing experimental patches.\n", wine_get_version());
+
if (process_detaching) NtTerminateThread( GetCurrentThread(), 0 );
RtlEnterCriticalSection( &loader_section );
+
RtlAcquirePebLock();
InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
RtlReleasePebLock();
--
2.28.0
2.30.2

View File

@@ -1,15 +1,14 @@
From ce5e1fc75139e4de9d92dfe27b4a513a96da013c Mon Sep 17 00:00:00 2001
From cfcc687562d4fa68b507cbf2c29722ef523d26aa Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 2 Oct 2014 19:53:46 +0200
Subject: [PATCH] winelib: Append '(Staging)' at the end of the version string.
---
Makefile.in | 2 +-
dlls/ntdll/Makefile.in | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
index 307a95b3b1a..61019fed949 100644
index b52495f741f..d5a8cad20da 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -116,7 +116,7 @@ install-manpages:: manpages
@@ -21,15 +20,6 @@ index 307a95b3b1a..61019fed949 100644
programs/winetest/build.rc: dummy
@build="STRINGTABLE { 1 \"`GIT_DIR=$(srcdir)/.git git rev-parse HEAD 2>/dev/null`\" }" && (echo $$build | cmp -s - $@) || echo $$build >$@ || (rm -f $@ && exit 1)
diff --git a/dlls/ntdll/Makefile.in b/dlls/ntdll/Makefile.in
index f39ffb42c6f..67847bb9392 100644
--- a/dlls/ntdll/Makefile.in
+++ b/dlls/ntdll/Makefile.in
@@ -79,3 +79,4 @@ unix_loader_EXTRADEFS = \
-DBINDIR=\"${bindir}\" \
-DDLL_TO_BINDIR=\"`${MAKEDEP} -R ${dlldir} ${bindir}`\" \
-DBIN_TO_DATADIR=\"`${MAKEDEP} -R ${bindir} ${datadir}/wine`\"
+
--
2.28.0
2.20.1

View File

@@ -1 +0,0 @@
#Depends: ntdll-FLS_Callbacks

View File

@@ -1,34 +0,0 @@
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

@@ -1,137 +0,0 @@
From d2e98b2054a5af671fd81ded32f2cf60a062312c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 5 Aug 2017 00:26:03 +0200
Subject: [PATCH] server: Implement token elevation information.
---
dlls/ntdll/unix/security.c | 16 ++++++++++++----
server/protocol.def | 8 ++++++++
server/token.c | 22 +++++++++++++++++++---
3 files changed, 39 insertions(+), 7 deletions(-)
diff --git a/dlls/ntdll/unix/security.c b/dlls/ntdll/unix/security.c
index d063d43d6d4..03a81afa46e 100644
--- a/dlls/ntdll/unix/security.c
+++ b/dlls/ntdll/unix/security.c
@@ -390,19 +390,27 @@ NTSTATUS WINAPI NtQueryInformationToken( HANDLE token, TOKEN_INFORMATION_CLASS c
break;
case TokenElevationType:
+ SERVER_START_REQ( get_token_elevation_type )
{
TOKEN_ELEVATION_TYPE *type = info;
- FIXME("QueryInformationToken( ..., TokenElevationType, ...) semi-stub\n");
- *type = TokenElevationTypeFull;
+ req->handle = wine_server_obj_handle( token );
+ status = wine_server_call( req );
+ if (status == STATUS_SUCCESS)
+ *type = reply->elevation;
}
+ SERVER_END_REQ;
break;
case TokenElevation:
+ SERVER_START_REQ( get_token_elevation_type )
{
TOKEN_ELEVATION *elevation = info;
- FIXME("QueryInformationToken( ..., TokenElevation, ...) semi-stub\n");
- elevation->TokenIsElevated = TRUE;
+ req->handle = wine_server_obj_handle( token );
+ status = wine_server_call( req );
+ if (status == STATUS_SUCCESS)
+ elevation->TokenIsElevated = (reply->elevation == TokenElevationTypeFull);
}
+ SERVER_END_REQ;
break;
case TokenSessionId:
diff --git a/server/protocol.def b/server/protocol.def
index ee07b1eca14..84f0b577d72 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -3566,6 +3566,14 @@ struct handle_info
@END
+/* Get elevation level of token */
+@REQ(get_token_elevation_type)
+ obj_handle_t handle; /* handle to the object */
+@REPLY
+ unsigned int elevation; /* elevation level */
+@END
+
+
/* Create I/O completion port */
@REQ(create_completion)
unsigned int access; /* desired access to a port */
diff --git a/server/token.c b/server/token.c
index 38a4c203d54..14343637af5 100644
--- a/server/token.c
+++ b/server/token.c
@@ -110,6 +110,7 @@ struct token
ACL *default_dacl; /* the default DACL to assign to objects created by this user */
TOKEN_SOURCE source; /* source of the token */
int impersonation_level; /* impersonation level this token is capable of if non-primary token */
+ TOKEN_ELEVATION_TYPE elevation; /* elevation level */
};
struct privilege
@@ -552,7 +553,7 @@ static struct token *create_token( unsigned primary, const SID *user,
const LUID_AND_ATTRIBUTES *privs, unsigned int priv_count,
const ACL *default_dacl, TOKEN_SOURCE source,
const luid_t *modified_id,
- int impersonation_level )
+ int impersonation_level, TOKEN_ELEVATION_TYPE elevation )
{
struct token *token = alloc_object( &token_ops );
if (token)
@@ -574,6 +575,7 @@ static struct token *create_token( unsigned primary, const SID *user,
token->impersonation_level = impersonation_level;
token->default_dacl = NULL;
token->primary_group = NULL;
+ token->elevation = elevation;
/* copy user */
token->user = memdup( user, security_sid_len( user ));
@@ -689,7 +691,8 @@ struct token *token_duplicate( struct token *src_token, unsigned primary,
token = create_token( primary, src_token->user, NULL, 0,
NULL, 0, src_token->default_dacl,
src_token->source, modified_id,
- impersonation_level );
+ impersonation_level,
+ src_token->elevation );
if (!token) return token;
/* copy groups */
@@ -895,7 +898,7 @@ struct token *token_create_admin( void )
static const TOKEN_SOURCE admin_source = {"SeMgr", {0, 0}};
token = create_token( TRUE, user_sid, admin_groups, ARRAY_SIZE( admin_groups ),
admin_privs, ARRAY_SIZE( admin_privs ), default_dacl,
- admin_source, NULL, -1 );
+ admin_source, NULL, -1, TokenElevationTypeFull );
/* we really need a primary group */
assert( token->primary_group );
}
@@ -1634,6 +1637,19 @@ DECL_HANDLER(get_token_statistics)
}
}
+DECL_HANDLER(get_token_elevation_type)
+{
+ struct token *token;
+
+ if ((token = (struct token *)get_handle_obj( current->process, req->handle,
+ TOKEN_QUERY,
+ &token_ops )))
+ {
+ reply->elevation = token->elevation;
+ release_object( token );
+ }
+}
+
DECL_HANDLER(get_token_default_dacl)
{
struct token *token;
--
2.27.0

View File

@@ -1,81 +0,0 @@
From 7e73f449d158f0d6a6b6b421d073dbaf1741e1c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 7 Aug 2017 02:22:11 +0200
Subject: server: Correctly treat zero access mask in duplicate_token
wineserver call.
---
dlls/advapi32/tests/security.c | 14 +++++++-------
server/token.c | 3 ++-
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index 4a03db27e69..f1a64e29dea 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -7438,7 +7438,7 @@ static void test_token_security_descriptor(void)
ret = DuplicateTokenEx(token4, 0, NULL, SecurityImpersonation, TokenImpersonation, &token5);
ok(ret, "DuplicateTokenEx failed with error %u\n", GetLastError());
ret = SetThreadToken(NULL, token5);
- todo_wine ok(ret, "SetThreadToken failed with error %u\n", GetLastError());
+ ok(ret, "SetThreadToken failed with error %u\n", GetLastError());
CloseHandle(token4);
/* Restrict current process token while impersonating a medium integrity token */
@@ -7503,16 +7503,16 @@ static void test_token_security_descriptor(void)
size = 0;
ret = GetKernelObjectSecurity(token6, LABEL_SECURITY_INFORMATION, NULL, 0, &size);
- todo_wine ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER,
+ ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER,
"Unexpected GetKernelObjectSecurity return value %u, error %u\n", ret, GetLastError());
sd3 = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
ret = GetKernelObjectSecurity(token6, LABEL_SECURITY_INFORMATION, sd3, size, &size);
- todo_wine ok(ret, "GetKernelObjectSecurity failed with error %u\n", GetLastError());
+ ok(ret, "GetKernelObjectSecurity failed with error %u\n", GetLastError());
sacl = NULL;
ret = GetSecurityDescriptorSacl(sd3, &present, &sacl, &defaulted);
- todo_wine ok(ret, "GetSecurityDescriptorSacl failed with error %u\n", GetLastError());
+ ok(ret, "GetSecurityDescriptorSacl failed with error %u\n", GetLastError());
todo_wine ok(present, "No SACL in the security descriptor\n");
todo_wine ok(sacl != NULL, "NULL SACL in the security descriptor\n");
@@ -7606,16 +7606,16 @@ static void test_token_security_descriptor(void)
size = 0;
ret = GetKernelObjectSecurity(token4, LABEL_SECURITY_INFORMATION, NULL, 0, &size);
- todo_wine ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER,
+ ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER,
"Unexpected GetKernelObjectSecurity return value %u, error %u\n", ret, GetLastError());
sd3 = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
ret = GetKernelObjectSecurity(token4, LABEL_SECURITY_INFORMATION, sd3, size, &size);
- todo_wine ok(ret, "GetKernelObjectSecurity failed with error %u\n", GetLastError());
+ ok(ret, "GetKernelObjectSecurity failed with error %u\n", GetLastError());
sacl = NULL;
ret = GetSecurityDescriptorSacl(sd3, &present, &sacl, &defaulted);
- todo_wine ok(ret, "GetSecurityDescriptorSacl failed with error %u\n", GetLastError());
+ ok(ret, "GetSecurityDescriptorSacl failed with error %u\n", GetLastError());
todo_wine ok(present, "No SACL in the security descriptor\n");
todo_wine ok(sacl != NULL, "NULL SACL in the security descriptor\n");
diff --git a/server/token.c b/server/token.c
index 6a1085bae12..292e1df80fd 100644
--- a/server/token.c
+++ b/server/token.c
@@ -1376,7 +1376,8 @@ DECL_HANDLER(duplicate_token)
struct token *token = token_duplicate( src_token, req->primary, req->impersonation_level, sd, NULL, 0, NULL, 0 );
if (token)
{
- reply->new_handle = alloc_handle_no_access_check( current->process, token, req->access, objattr->attributes );
+ unsigned int access = req->access ? req->access : get_handle_access( current->process, req->handle );
+ reply->new_handle = alloc_handle_no_access_check( current->process, token, access, objattr->attributes );
release_object( token );
}
release_object( src_token );
--
2.13.1

View File

@@ -1,46 +0,0 @@
From 48f4c131f9e8ffc091dde12437ad0772ed1c5ca6 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 6 Aug 2017 15:16:33 +0200
Subject: server: Use all group attributes in create_token.
---
server/token.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/server/token.c b/server/token.c
index 0019b3a..2a56664 100644
--- a/server/token.c
+++ b/server/token.c
@@ -592,13 +592,13 @@ static struct token *create_token( unsigned primary, const SID *user,
return NULL;
}
memcpy( &group->sid, groups[i].Sid, security_sid_len( groups[i].Sid ));
- group->enabled = TRUE;
- group->def = TRUE;
- group->logon = (groups[i].Attributes & SE_GROUP_LOGON_ID) != 0;
group->mandatory = (groups[i].Attributes & SE_GROUP_MANDATORY) != 0;
- group->owner = (groups[i].Attributes & SE_GROUP_OWNER) != 0;
- group->resource = FALSE;
- group->deny_only = FALSE;
+ group->def = (groups[i].Attributes & SE_GROUP_ENABLED_BY_DEFAULT) != 0;
+ group->enabled = (groups[i].Attributes & SE_GROUP_ENABLED) != 0;
+ group->owner = (groups[i].Attributes & SE_GROUP_OWNER) != 0;
+ group->deny_only = (groups[i].Attributes & SE_GROUP_USE_FOR_DENY_ONLY) != 0;
+ group->logon = (groups[i].Attributes & SE_GROUP_LOGON_ID) != 0;
+ group->resource = (groups[i].Attributes & SE_GROUP_RESOURCE) != 0;
list_add_tail( &token->groups, &group->entry );
/* Use first owner capable group as owner and primary group */
if (!token->primary_group && group->owner)
@@ -1603,8 +1603,8 @@ DECL_HANDLER(get_token_groups)
if (group->enabled) *attr_ptr |= SE_GROUP_ENABLED;
if (group->owner) *attr_ptr |= SE_GROUP_OWNER;
if (group->deny_only) *attr_ptr |= SE_GROUP_USE_FOR_DENY_ONLY;
- if (group->resource) *attr_ptr |= SE_GROUP_RESOURCE;
if (group->logon) *attr_ptr |= SE_GROUP_LOGON_ID;
+ if (group->resource) *attr_ptr |= SE_GROUP_RESOURCE;
memcpy(sid_ptr, &group->sid, security_sid_len( &group->sid ));
--
2.7.4

View File

@@ -1,219 +0,0 @@
From c47977a8bbd739483589d1f01cfece435be1c100 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 5 Aug 2017 01:45:29 +0200
Subject: [PATCH] ntdll: Add function to create new tokens for elevation
purposes.
---
dlls/ntdll/ntdll.spec | 3 ++
dlls/ntdll/ntdll_misc.h | 3 ++
dlls/ntdll/process.c | 18 +++++++++
server/protocol.def | 8 ++++
server/security.h | 1 +
server/token.c | 84 +++++++++++++++++++++++++++++++++++++++++
6 files changed, 117 insertions(+)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 0997c310110..8e3786e1972 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -1600,6 +1600,9 @@
# Virtual memory
@ cdecl __wine_locked_recvmsg(long ptr long)
+# Token
+@ cdecl __wine_create_default_token(long)
+
# Version
@ cdecl wine_get_version()
@ cdecl wine_get_build_id()
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
index 63ceac42e94..5a98501381b 100644
--- a/dlls/ntdll/ntdll_misc.h
+++ b/dlls/ntdll/ntdll_misc.h
@@ -67,6 +67,9 @@ extern void init_user_process_params(void) DECLSPEC_HIDDEN;
extern NTSTATUS restart_process( RTL_USER_PROCESS_PARAMETERS *params, NTSTATUS status ) DECLSPEC_HIDDEN;
extern void CDECL DECLSPEC_NORETURN signal_start_thread( CONTEXT *ctx ) DECLSPEC_HIDDEN;
+/* token */
+extern HANDLE CDECL __wine_create_default_token(BOOL admin);
+
/* server support */
extern BOOL is_wow64 DECLSPEC_HIDDEN;
diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
index 77ba5b371e2..3e91a1fa9c4 100644
--- a/dlls/ntdll/process.c
+++ b/dlls/ntdll/process.c
@@ -72,6 +72,24 @@ HANDLE CDECL __wine_make_process_system(void)
return ret;
}
+/***********************************************************************
+ * __wine_create_default_token (NTDLL.@)
+ *
+ * Creates a default limited or admin token.
+ */
+HANDLE CDECL __wine_create_default_token( BOOL admin )
+{
+ HANDLE ret = NULL;
+ SERVER_START_REQ( create_token )
+ {
+ req->admin = admin;
+ if (!wine_server_call( req ))
+ ret = wine_server_ptr_handle( reply->token );
+ }
+ SERVER_END_REQ;
+ return ret;
+}
+
/***********************************************************************
* restart_process
*/
diff --git a/server/protocol.def b/server/protocol.def
index 30a102d7b82..a9308904afc 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -3481,6 +3481,14 @@ struct handle_info
@END
+/* Create a new token */
+@REQ(create_token)
+ unsigned int admin; /* admin or limited token */
+@REPLY
+ obj_handle_t token; /* handle for new token */
+@END
+
+
/* Create I/O completion port */
@REQ(create_completion)
unsigned int access; /* desired access to a port */
diff --git a/server/security.h b/server/security.h
index 6c337143c3d..21e90ccf23f 100644
--- a/server/security.h
+++ b/server/security.h
@@ -49,6 +49,7 @@ extern const PSID security_builtin_users_sid;
extern const PSID security_builtin_admins_sid;
extern const PSID security_domain_users_sid;
extern const PSID security_high_label_sid;
+extern const PSID security_medium_label_sid;
/* token functions */
diff --git a/server/token.c b/server/token.c
index c4f1cd943c2..970ed1838da 100644
--- a/server/token.c
+++ b/server/token.c
@@ -77,6 +77,7 @@ static const SID anonymous_logon_sid = { SID_REVISION, 1, { SECURITY_NT_AUTHORIT
static const SID authenticated_user_sid = { SID_REVISION, 1, { SECURITY_NT_AUTHORITY }, { SECURITY_AUTHENTICATED_USER_RID } };
static const SID local_system_sid = { SID_REVISION, 1, { SECURITY_NT_AUTHORITY }, { SECURITY_LOCAL_SYSTEM_RID } };
static const SID high_label_sid = { SID_REVISION, 1, { SECURITY_MANDATORY_LABEL_AUTHORITY }, { SECURITY_MANDATORY_HIGH_RID } };
+static const SID medium_label_sid = { SID_REVISION, 1, { SECURITY_MANDATORY_LABEL_AUTHORITY }, { SECURITY_MANDATORY_MEDIUM_RID } };
static const SID_N(5) local_user_sid = { SID_REVISION, 5, { SECURITY_NT_AUTHORITY }, { SECURITY_NT_NON_UNIQUE, 0, 0, 0, 1000 } };
static const SID_N(2) builtin_admins_sid = { SID_REVISION, 2, { SECURITY_NT_AUTHORITY }, { SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS } };
static const SID_N(2) builtin_users_sid = { SID_REVISION, 2, { SECURITY_NT_AUTHORITY }, { SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_USERS } };
@@ -93,6 +94,7 @@ const PSID security_builtin_admins_sid = (PSID)&builtin_admins_sid;
const PSID security_builtin_users_sid = (PSID)&builtin_users_sid;
const PSID security_domain_users_sid = (PSID)&domain_users_sid;
const PSID security_high_label_sid = (PSID)&high_label_sid;
+const PSID security_medium_label_sid = (PSID)&medium_label_sid;
static luid_t prev_luid_value = { 1000, 0 };
@@ -915,6 +917,64 @@ struct token *token_create_admin( void )
return token;
}
+static struct token *token_create_limited( void )
+{
+ struct token *token = NULL;
+ static const SID_IDENTIFIER_AUTHORITY nt_authority = { SECURITY_NT_AUTHORITY };
+ static const unsigned int alias_admins_subauth[] = { SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS };
+ static const unsigned int alias_users_subauth[] = { SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_USERS };
+ /* on Windows, this value changes every time the user logs on */
+ static const unsigned int logon_subauth[] = { SECURITY_LOGON_IDS_RID, 0, 1 /* FIXME: should be randomly generated when tokens are inherited by new processes */ };
+ PSID alias_admins_sid;
+ PSID alias_users_sid;
+ PSID logon_sid;
+ const SID *user_sid = security_unix_uid_to_sid( getuid() );
+ ACL *default_dacl = create_default_dacl( user_sid );
+
+ alias_admins_sid = security_sid_alloc( &nt_authority, sizeof(alias_admins_subauth)/sizeof(alias_admins_subauth[0]),
+ alias_admins_subauth );
+ alias_users_sid = security_sid_alloc( &nt_authority, sizeof(alias_users_subauth)/sizeof(alias_users_subauth[0]),
+ alias_users_subauth );
+ logon_sid = security_sid_alloc( &nt_authority, sizeof(logon_subauth)/sizeof(logon_subauth[0]),
+ logon_subauth );
+
+ if (alias_admins_sid && alias_users_sid && logon_sid && default_dacl)
+ {
+ const LUID_AND_ATTRIBUTES user_privs[] =
+ {
+ { SeChangeNotifyPrivilege , SE_PRIVILEGE_ENABLED },
+ { SeShutdownPrivilege , 0 },
+ { SeUndockPrivilege , 0 },
+ };
+ /* note: we don't include non-builtin groups here for the user -
+ * telling us these is the job of a client-side program */
+ const SID_AND_ATTRIBUTES user_groups[] =
+ {
+ { security_world_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY },
+ { security_local_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY },
+ { security_interactive_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY },
+ { security_authenticated_user_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY },
+ { security_domain_users_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY|SE_GROUP_OWNER },
+ { alias_admins_sid, SE_GROUP_USE_FOR_DENY_ONLY },
+ { alias_users_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY },
+ { logon_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY|SE_GROUP_LOGON_ID },
+ };
+ static const TOKEN_SOURCE admin_source = {"SeMgr", {0, 0}};
+ token = create_token( TRUE, user_sid, user_groups, sizeof(user_groups)/sizeof(user_groups[0]),
+ user_privs, sizeof(user_privs)/sizeof(user_privs[0]), default_dacl,
+ admin_source, NULL, -1, TokenElevationTypeLimited, &medium_label_sid );
+ /* we really need a primary group */
+ assert( token->primary_group );
+ }
+
+ free( logon_sid );
+ free( alias_admins_sid );
+ free( alias_users_sid );
+ free( default_dacl );
+
+ return token;
+}
+
static struct privilege *token_find_privilege( struct token *token, const LUID *luid, int enabled_only )
{
struct privilege *privilege;
@@ -1720,3 +1780,27 @@ DECL_HANDLER(set_token_default_dacl)
release_object( token );
}
}
+
+DECL_HANDLER(create_token)
+{
+ struct token *token;
+ PSID label;
+
+ if (req->admin)
+ {
+ token = token_create_admin();
+ label = security_high_label_sid;
+ }
+ else
+ {
+ token = token_create_limited();
+ label = security_medium_label_sid;
+ }
+
+ if (token)
+ {
+ if (token_assign_label( token, label ))
+ reply->token = alloc_handle( current->process, token, TOKEN_ALL_ACCESS, 0 );
+ release_object( token );
+ }
+}
--
2.28.0

View File

@@ -1,66 +0,0 @@
From cf24ca0854a5b0dca2055f0991fd9a932125c65e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 5 Aug 2017 02:03:20 +0200
Subject: shell32: Implement process elevation using runas verb.
---
dlls/shell32/shlexec.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/dlls/shell32/shlexec.c b/dlls/shell32/shlexec.c
index 0cf112b6373..af50078dbca 100644
--- a/dlls/shell32/shlexec.c
+++ b/dlls/shell32/shlexec.c
@@ -50,6 +50,8 @@
WINE_DEFAULT_DEBUG_CHANNEL(exec);
+extern HANDLE CDECL __wine_create_default_token(BOOL admin);
+
static const WCHAR wszOpen[] = {'o','p','e','n',0};
static const WCHAR wszExe[] = {'.','e','x','e',0};
static const WCHAR wszILPtr[] = {':','%','p',0};
@@ -312,6 +314,8 @@ static HRESULT SHELL_GetPathFromIDListForExecuteW(LPCITEMIDLIST pidl, LPWSTR psz
static UINT_PTR SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
const SHELLEXECUTEINFOW *psei, LPSHELLEXECUTEINFOW psei_out)
{
+ static WCHAR runasW[] = {'r','u','n','a','s',0};
+ HANDLE token = NULL;
STARTUPINFOW startup;
PROCESS_INFORMATION info;
UINT_PTR retval = SE_ERR_NOASSOC;
@@ -344,8 +348,20 @@ static UINT_PTR SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
dwCreationFlags = CREATE_UNICODE_ENVIRONMENT;
if (!(psei->fMask & SEE_MASK_NO_CONSOLE))
dwCreationFlags |= CREATE_NEW_CONSOLE;
- if (CreateProcessW(NULL, (LPWSTR)lpCmd, NULL, NULL, FALSE, dwCreationFlags, env,
- lpDirectory, &startup, &info))
+
+ /* Spawning a process with runas verb means that the process should be
+ * executed with admin rights. This function ignores the manifest data,
+ * and allows programs to elevate rights on-demand. On Windows a complex
+ * RPC menchanism is used, using CreateProcessAsUser would fail because
+ * it can only be used to drop rights. */
+ if (psei->lpVerb && !strcmpiW(psei->lpVerb, runasW))
+ {
+ if (!(token = __wine_create_default_token(TRUE)))
+ ERR("Failed to create admin token\n");
+ }
+
+ if (CreateProcessAsUserW(token, NULL, (LPWSTR)lpCmd, NULL, NULL, FALSE,
+ dwCreationFlags, env, lpDirectory, &startup, &info))
{
/* Give 30 seconds to the app to come up, if desired. Probably only needed
when starting app immediately before making a DDE connection. */
@@ -365,6 +381,8 @@ static UINT_PTR SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
retval = ERROR_BAD_FORMAT;
}
+ if (token) CloseHandle(token);
+
TRACE("returning %lu\n", retval);
psei_out->hInstApp = (HINSTANCE)retval;
--
2.13.1

View File

@@ -1,67 +0,0 @@
From e34d019222909281390f83149be755a4145024c4 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 7 Aug 2017 15:28:33 +0200
Subject: [PATCH] ntdll: Add semi-stub for TokenLinkedToken info class.
---
dlls/ntdll/unix/security.c | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/security.c b/dlls/ntdll/unix/security.c
index f0057116dee..2769e5f6a7b 100644
--- a/dlls/ntdll/unix/security.c
+++ b/dlls/ntdll/unix/security.c
@@ -138,6 +138,7 @@ NTSTATUS WINAPI NtDuplicateToken( HANDLE token, ACCESS_MASK access, OBJECT_ATTRI
return status;
}
+extern HANDLE CDECL __wine_create_default_token(BOOL admin);
/***********************************************************************
* NtQueryInformationToken (NTDLL.@)
@@ -166,7 +167,7 @@ NTSTATUS WINAPI NtQueryInformationToken( HANDLE token, TOKEN_INFORMATION_CLASS c
0, /* TokenAuditPolicy */
0, /* TokenOrigin */
sizeof(TOKEN_ELEVATION_TYPE), /* TokenElevationType */
- 0, /* TokenLinkedToken */
+ sizeof(TOKEN_LINKED_TOKEN), /* TokenLinkedToken */
sizeof(TOKEN_ELEVATION), /* TokenElevation */
0, /* TokenHasRestrictions */
0, /* TokenAccessInformation */
@@ -401,6 +402,33 @@ NTSTATUS WINAPI NtQueryInformationToken( HANDLE token, TOKEN_INFORMATION_CLASS c
SERVER_END_REQ;
break;
+ case TokenLinkedToken:
+ SERVER_START_REQ( get_token_elevation_type )
+ {
+ TOKEN_LINKED_TOKEN *linked_token = info;
+ req->handle = wine_server_obj_handle( token );
+ status = wine_server_call( req );
+ if (status == STATUS_SUCCESS)
+ {
+ HANDLE token;
+ /* FIXME: On Wine we do not have real linked tokens yet. Typically, a
+ * program running with admin privileges is linked to a limited token,
+ * and vice versa. We just create a new token instead of storing links
+ * on the wineserver side. Using TokenLinkedToken twice should return
+ * back the original token. */
+ if ((reply->elevation == TokenElevationTypeFull || reply->elevation == TokenElevationTypeLimited) &&
+ (token = __wine_create_default_token( reply->elevation != TokenElevationTypeFull )))
+ {
+ status = NtDuplicateToken( token, 0, NULL, SecurityIdentification, TokenImpersonation, &linked_token->LinkedToken );
+ NtClose( token );
+ }
+ else
+ status = STATUS_NO_TOKEN;
+ }
+ }
+ SERVER_END_REQ;
+ break;
+
case TokenElevation:
SERVER_START_REQ( get_token_elevation_type )
{
--
2.27.0

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