Compare commits

...

228 Commits
v5.20 ... v6.7

Author SHA1 Message Date
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
Alistair Leslie-Hughes
d7b71f0bb4 Release v6.0rc1 2020-12-05 15:50:13 +11:00
Alistair Leslie-Hughes
3511fe03ee Updated mfplat-streaming-support patchset 2020-12-05 11:15:09 +11:00
Alistair Leslie-Hughes
7ffd7fc333 Removed libs-Debug_Channel patchset
This patch would have to completely rewriten and hasn't been used for quite sometime.
2020-12-05 10:31:59 +11:00
Alistair Leslie-Hughes
7be9c41c35 Rebase against 842b38e29166a429d59331be40761335807c85d2. 2020-12-05 10:25:39 +11:00
Alistair Leslie-Hughes
e002d94a8b Rebase against 727168a9e116a43f851df2673a9169ad280a9ec8.
Includes an updated mfplat patchset.
2020-12-04 11:22:01 +11:00
Alistair Leslie-Hughes
5eb920dd83 Rebase against e4fbae832c868e9fcf5a91c58255fe3f4ea1cb30. 2020-12-03 10:02:16 +11:00
Zebediah Figura
968e22f2ed server-unix_name: New patch set. 2020-12-02 10:35:06 -06:00
Zebediah Figura
f9e86098b3 ntdll-Junction_Points: Updates from Erich E. Hoover. 2020-12-02 10:34:50 -06:00
Alistair Leslie-Hughes
023588ac34 Rebase against 447924a6d68f7919bd451661314a52aa99cab709. 2020-12-02 09:52:16 +11:00
Alistair Leslie-Hughes
d3b70d6278 Rebase against 2ad09b01673381261815bfc804a2f69ce4d85f86. 2020-12-01 10:45:13 +11:00
Alistair Leslie-Hughes
47fea9ffa2 Updated mfplat-streaming-support patchset 2020-11-30 14:14:26 +11:00
Alistair Leslie-Hughes
2a073f334b Rebase against cbca9f847f60773b4e7e5408f6a079f4896c5c1e. 2020-11-28 15:07:12 +11:00
Alistair Leslie-Hughes
3b0de86bf9 Rebase against 9faa5eeddd24a057d9ff522259c9dbdc6203c098. 2020-11-27 11:25:44 +11:00
Alistair Leslie-Hughes
b9d3415f29 Rebase against 40d4fbe45997a1820296e7909ba2212518bcfacc. 2020-11-26 09:32:07 +11:00
Alistair Leslie-Hughes
84bb779a9b Added user32-message-order patchset 2020-11-26 08:22:51 +11:00
Alistair Leslie-Hughes
3553024da0 Updated widl-winrt-support patchset
Thanks Rémi Bernon.
2020-11-25 22:14:33 +11:00
Alistair Leslie-Hughes
991f2e8ebf Rebase against 4807a8f588c67e2296474399368a96c0046120fd. 2020-11-24 09:12:33 +11:00
Zebediah Figura
837404f454 crypt32-CRYPT_KEY_PROV_INFO: New patch set. 2020-11-22 21:03:03 -06:00
Zebediah Figura
18032936f1 ntdll-Junction_Points: Updates from Erich E. Hoover. 2020-11-22 20:16:54 -06:00
Alistair Leslie-Hughes
0ae7315541 Updated mfplat-streaming-support patchset
Already handled upstream.
2020-11-22 17:57:24 +11:00
Alistair Leslie-Hughes
f257f37b92 Updated msvcrt-Math_Precision patchset
Fixes: https://bugs.winehq.org/show_bug.cgi?id=50161
Fixes: https://bugs.winehq.org/show_bug.cgi?id=50162
2020-11-22 11:21:53 +11:00
Alistair Leslie-Hughes
371d6ff606 Release v5.22 2020-11-21 11:24:11 +11:00
Alistair Leslie-Hughes
88ffa8d374 Rebase against bedfb9cae224a369efa4588332a5518dbee57035. 2020-11-21 09:56:05 +11:00
Alistair Leslie-Hughes
7734f7a808 Rebase against 65d917402f43d6c061668cff811f5fd6729d5750. 2020-11-19 14:33:39 +11:00
Alistair Leslie-Hughes
0192a7b36c Rebase against 764a93f121c6b0f88c3444454ebb85eb7cb63295. 2020-11-18 09:40:10 +11:00
Alistair Leslie-Hughes
5566259fb5 Rebase against 86e6c0bc28177a3794950fe2a13b8208400b6194. 2020-11-17 10:18:40 +11:00
Alistair Leslie-Hughes
7bdc1d6bac Updated eventfd_synchronization patchset 2020-11-15 14:23:28 +11:00
Alistair Leslie-Hughes
852a7d9a7d Removed dwmapi-DwmGetTransportAttributes patchset
Only contains tests, and DwmGetTransportAttributes is upstream.
2020-11-15 09:47:44 +11:00
Alistair Leslie-Hughes
3b6b470bca Rebase against cf49617c1a378dd4a37ab7226187708c501b046f. 2020-11-14 21:51:08 +11:00
Alistair Leslie-Hughes
cd3ee9b25d Rebase against 1f15ddce9c7d0ee71521d7b98c698488b76d3f01. 2020-11-12 09:22:07 +11:00
Alistair Leslie-Hughes
c7ea1850c7 Rebase against b940c5e7c91bff963336dd7d2c4defc3a82c75a1. 2020-11-11 10:26:07 +11:00
Alistair Leslie-Hughes
41c7c741d7 Updated mfplat-streaming-support patchset 2020-11-10 16:42:53 +11:00
Alistair Leslie-Hughes
009f571ba1 Rebase against 572aa09de1b0e3ba0e8b19f48d5e96539625bb0a. 2020-11-10 14:02:03 +11:00
Alistair Leslie-Hughes
e2d9f97b61 Release v5.21 2020-11-07 16:30:34 +11:00
Alistair Leslie-Hughes
c32fb530b8 Rebase against 70d77a439ab58dcf56664d1545aa0c4cd3edb31e. 2020-11-07 11:30:52 +11:00
Alistair Leslie-Hughes
9d2a93164f Rebase against 4919b9b99fe20cfb8599b7b827811fdd7937ea9d. 2020-11-06 11:12:16 +11:00
Alistair Leslie-Hughes
4130b2a71c Rebase against b793799d3d5facb765d97041669da4bc159b860b. 2020-11-05 11:02:49 +11:00
Alistair Leslie-Hughes
786cac8be4 Rebase against 908c837b17ac1c285ef32e98f53df730c3770295. 2020-11-04 10:18:49 +11:00
Paul Gofman
6ad4bdecd2 Updated ntdll-Syscall_Emulation patchset. 2020-11-03 19:55:50 +03:00
Alistair Leslie-Hughes
950d7c6c43 Rebase against dfa4c07941322dbcad54507cd0acf271a6c719ab. 2020-11-03 20:45:48 +11:00
Zebediah Figura
66561ecf5d patchinstall.py: Remove the autogenerated patch list. 2020-11-01 15:25:10 -06:00
Alistair Leslie-Hughes
7925f8829e Fix rebase 2020-11-01 08:27:02 +11:00
Alistair Leslie-Hughes
f7739e7052 Rebase against 03eaa2cc93e5e2ea4c36495870c268797aea3ca8. 2020-10-31 19:32:08 +11:00
Alistair Leslie-Hughes
44f49e8001 Rebase against c9e2deac39924473ac538ee22a2a0c0dbe3bad85. 2020-10-30 14:28:10 +11:00
Zebediah Figura
c118dfd709 msxml3-FreeThreadedXMLHTTP60: Restore a mistakenly deleted hunk.
Spotted by Gijs Vermeulen.
2020-10-29 10:47:54 -05:00
Alistair Leslie-Hughes
c811f7aa7e Rebase against 03395fdf71b606b589b917eab5d4766842188b91. 2020-10-29 15:52:40 +11:00
Alistair Leslie-Hughes
495ae4e9af Updated mfplat-streaming-support patchset 2020-10-28 15:13:16 +11:00
Alistair Leslie-Hughes
819539b19f Updated dinput-remap-joystick patchset
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50066
2020-10-28 15:10:34 +11:00
Zebediah Figura
bd2086ff97 Rebase against 2148167f2557cc6c7d1e2f5ffef28bd936503a9a. 2020-10-27 17:40:08 -05:00
Zebediah Figura
db6b6282eb bcrypt-ECDHSecretAgreement: Also add a missing RESOLVE_FUNC for key_asymmetric_duplicate.
Spotted by Juuso Alasuutari <juuso.alasuutari@gmail.com>.
2020-10-27 10:43:26 -05:00
Erich E. Hoover
3dc5147b28 ntdll-Junction_Points: Updates from Erich E. Hoover. 2020-10-26 22:07:42 -05:00
Zebediah Figura
d1a75649b7 bcrypt-ECDHSecretAgreement: Add a missing function table entry. 2020-10-26 18:44:49 -05:00
Zebediah Figura
40dda2bf72 Rebase against 93107c08f5aa7f37ad7ece9cd7ca248dba3030ce. 2020-10-26 18:36:59 -05:00
Zebediah Figura
534f6ae34e ntdll-Fix_Aligment: Remove patch set.
This is fixed upstream, presumably by e3e477e6a14fbcb153258b47d1905915dc4c1f22.
2020-10-24 15:42:52 -05:00
Zebediah Figura
411aeb2398 server-Stored_ACLs: Restore some definitions for FreeBSD. 2020-10-24 10:28:29 -05:00
Zebediah Figura
7e7e0bbe3e ntdll-DOS_Attributes: Restore some definitions for FreeBSD. 2020-10-24 10:28:17 -05:00
544 changed files with 20222 additions and 46270 deletions

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

@@ -0,0 +1,128 @@
name: MacOS
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
jobs:
wine-staging:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
brew install --cask xquartz
brew install bison \
faudio \
gphoto2 \
gst-plugins-base \
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 install --cask xquartz
brew install bison \
faudio \
gphoto2 \
gst-plugins-base \
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

@@ -1,4 +1,4 @@
From 7529755fcc41fda650aac6b27f34438354435d34 Mon Sep 17 00:00:00 2001
From b51fdc7e211f676d169c937209bf689e57252c5d Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Tue, 22 Mar 2016 21:58:40 +0100
Subject: [PATCH] dwrite: Avoid implicit cast of interface pointer.
@@ -9,10 +9,10 @@ Subject: [PATCH] dwrite: Avoid implicit cast of interface pointer.
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c
index 9280b5d32..2f0974a4c 100644
index aa51c744297..7cad015480f 100644
--- a/dlls/dwrite/font.c
+++ b/dlls/dwrite/font.c
@@ -1887,7 +1887,7 @@ static struct dwrite_font *unsafe_impl_from_IDWriteFont(IDWriteFont *iface)
@@ -2130,7 +2130,7 @@ static struct dwrite_font *unsafe_impl_from_IDWriteFont(IDWriteFont *iface)
if (!iface)
return NULL;
assert(iface->lpVtbl == (IDWriteFontVtbl*)&dwritefontvtbl);
@@ -21,7 +21,7 @@ index 9280b5d32..2f0974a4c 100644
}
struct dwrite_fontface *unsafe_impl_from_IDWriteFontFace(IDWriteFontFace *iface)
@@ -1895,7 +1895,7 @@ struct dwrite_fontface *unsafe_impl_from_IDWriteFontFace(IDWriteFontFace *iface)
@@ -2138,7 +2138,7 @@ struct dwrite_fontface *unsafe_impl_from_IDWriteFontFace(IDWriteFontFace *iface)
if (!iface)
return NULL;
assert(iface->lpVtbl == (IDWriteFontFaceVtbl*)&dwritefontfacevtbl);
@@ -31,10 +31,10 @@ index 9280b5d32..2f0974a4c 100644
static struct dwrite_fontfacereference *unsafe_impl_from_IDWriteFontFaceReference(IDWriteFontFaceReference *iface)
diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c
index b9321157a..76ea23ba6 100644
index 1f6201a6a93..35791d5c22e 100644
--- a/dlls/dwrite/layout.c
+++ b/dlls/dwrite/layout.c
@@ -5895,7 +5895,7 @@ static const IDWriteTextFormat3Vtbl dwritetextformatvtbl =
@@ -5886,7 +5886,7 @@ static const IDWriteTextFormat3Vtbl dwritetextformatvtbl =
static struct dwrite_textformat *unsafe_impl_from_IDWriteTextFormat(IDWriteTextFormat *iface)
{
return (iface->lpVtbl == (IDWriteTextFormatVtbl*)&dwritetextformatvtbl) ?
@@ -42,7 +42,7 @@ index b9321157a..76ea23ba6 100644
+ CONTAINING_RECORD((IDWriteTextFormat3 *)iface, struct dwrite_textformat, IDWriteTextFormat3_iface) : NULL;
}
HRESULT create_textformat(const WCHAR *family_name, IDWriteFontCollection *collection, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style,
HRESULT create_textformat(const WCHAR *family_name, IDWriteFontCollection *collection, DWRITE_FONT_WEIGHT weight,
--
2.24.0
2.29.2

View File

@@ -1,4 +1,4 @@
From 0cf6433af95363c5fbba2af482b2ba50b863dfb7 Mon Sep 17 00:00:00 2001
From a4d9189613ecacb289595663302c1db8676c8d9d 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
@@ -9,7 +9,7 @@ Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging
1 file changed, 15 insertions(+)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 20bc3f977d1..c2187a19397 100644
index 7a714a5aa6d..e5325ec31ff 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
@@ -3235,6 +3236,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.@)
@@ -3597,6 +3599,9 @@ static void init_wow64(void)
*/
void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR unknown3, ULONG_PTR unknown4 )
{
@@ -38,7 +38,7 @@ 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
@@ -3614,6 +3619,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
entry = (void **)&context->u.s.X0;
#endif
@@ -56,5 +56,5 @@ index 20bc3f977d1..c2187a19397 100644
RtlEnterCriticalSection( &loader_section );
--
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,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

View File

@@ -1,23 +1,23 @@
From 19683a27eaaed9c23635e9b5fa768a6c120a2ace Mon Sep 17 00:00:00 2001
From 9bdd47614e24f12a292c18bdc9d81e55744b6e5f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 17 Jan 2016 01:11:46 +0100
Subject: [PATCH] iertutil: Add dll and add stub for ordinal 811.
---
configure.ac | 1 +
dlls/iertutil/Makefile.in | 4 +
dlls/iertutil/iertutil.spec | 521 ++++++++++++++++++++++++++++++++++++++++++++
dlls/iertutil/main.c | 48 ++++
4 files changed, 574 insertions(+)
dlls/iertutil/Makefile.in | 6 +
dlls/iertutil/iertutil.spec | 521 ++++++++++++++++++++++++++++++++++++
dlls/iertutil/main.c | 31 +++
4 files changed, 559 insertions(+)
create mode 100644 dlls/iertutil/Makefile.in
create mode 100644 dlls/iertutil/iertutil.spec
create mode 100644 dlls/iertutil/main.c
diff --git a/configure.ac b/configure.ac
index 5c97c1c..d70dcea 100644
index caff5d1fe52..91b95b8e7b1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3286,6 +3286,7 @@ WINE_CONFIG_MAKEFILE(dlls/icmp)
@@ -3342,6 +3342,7 @@ WINE_CONFIG_MAKEFILE(dlls/icmp)
WINE_CONFIG_MAKEFILE(dlls/ieframe)
WINE_CONFIG_MAKEFILE(dlls/ieframe/tests)
WINE_CONFIG_MAKEFILE(dlls/ieproxy)
@@ -27,17 +27,19 @@ index 5c97c1c..d70dcea 100644
WINE_CONFIG_MAKEFILE(dlls/imagehlp)
diff --git a/dlls/iertutil/Makefile.in b/dlls/iertutil/Makefile.in
new file mode 100644
index 0000000..268026e
index 00000000000..47f9d228812
--- /dev/null
+++ b/dlls/iertutil/Makefile.in
@@ -0,0 +1,4 @@
@@ -0,0 +1,6 @@
+MODULE = iertutil.dll
+
+EXTRADLLFLAGS = -mno-cygwin -Wb,--prefer-native
+
+C_SRCS = \
+ main.c
diff --git a/dlls/iertutil/iertutil.spec b/dlls/iertutil/iertutil.spec
new file mode 100644
index 0000000..a13779b
index 00000000000..a13779bebbd
--- /dev/null
+++ b/dlls/iertutil/iertutil.spec
@@ -0,0 +1,521 @@
@@ -564,10 +566,10 @@ index 0000000..a13779b
+@ stub UriFromHostAndScheme
diff --git a/dlls/iertutil/main.c b/dlls/iertutil/main.c
new file mode 100644
index 0000000..2b993a4
index 00000000000..4e5e9f086b3
--- /dev/null
+++ b/dlls/iertutil/main.c
@@ -0,0 +1,48 @@
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2016 Michael MĂĽller
+ *
@@ -586,7 +588,6 @@ index 0000000..2b993a4
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "config.h"
+#include <stdarg.h>
+
+#include "windef.h"
@@ -595,27 +596,11 @@ index 0000000..2b993a4
+
+WINE_DEFAULT_DEBUG_CHANNEL(iertutil);
+
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
+{
+ TRACE("(%p, %u, %p)\n", instance, reason, reserved);
+
+ switch (reason)
+ {
+ case DLL_WINE_PREATTACH:
+ return FALSE; /* prefer native version */
+ case DLL_PROCESS_ATTACH:
+ DisableThreadLibraryCalls(instance);
+ break;
+ }
+
+ return TRUE;
+}
+
+BOOL WINAPI IERTUTIL_811(void *unknown)
+{
+ FIXME("(%p): stub\n", unknown);
+ return FALSE;
+}
--
1.9.1
2.20.1

View File

@@ -1,4 +1,4 @@
From 21b4b65eadc9e39008ccadc48307fcfea05a24fb Mon Sep 17 00:00:00 2001
From 0e65ed108eb8bab24668f9a58c5757a3ad36104f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 12 Apr 2016 01:02:34 +0200
Subject: [PATCH] uiautomationcore: Add dll and stub some functions.
@@ -9,7 +9,7 @@ Subject: [PATCH] uiautomationcore: Add dll and stub some functions.
2 files changed, 48 insertions(+), 6 deletions(-)
diff --git a/dlls/uiautomationcore/Makefile.in b/dlls/uiautomationcore/Makefile.in
index b6edec5f6a9..bf2204d5ab4 100644
index 5c4acb232a4..412f1dbbe19 100644
--- a/dlls/uiautomationcore/Makefile.in
+++ b/dlls/uiautomationcore/Makefile.in
@@ -1,5 +1,6 @@
@@ -17,10 +17,10 @@ index b6edec5f6a9..bf2204d5ab4 100644
IMPORTLIB = uiautomationcore
+IMPORTS = uuid
EXTRADLLFLAGS = -mno-cygwin
EXTRADLLFLAGS = -mno-cygwin -Wb,--prefer-native
diff --git a/dlls/uiautomationcore/uia_main.c b/dlls/uiautomationcore/uia_main.c
index f0d8247724d..b9c24b4b963 100644
index 42014af6035..61e165d83c0 100644
--- a/dlls/uiautomationcore/uia_main.c
+++ b/dlls/uiautomationcore/uia_main.c
@@ -1,4 +1,5 @@
@@ -29,7 +29,7 @@ index f0d8247724d..b9c24b4b963 100644
* Copyright 2017 Jacek Caban for CodeWeavers
*
* This library is free software; you can redistribute it and/or
@@ -16,6 +17,7 @@
@@ -16,18 +17,58 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
@@ -37,9 +37,8 @@ index f0d8247724d..b9c24b4b963 100644
#include "uiautomation.h"
#include "wine/debug.h"
@@ -37,12 +39,51 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, void *lpv)
return TRUE;
}
WINE_DEFAULT_DEBUG_CHANNEL(uiautomation);
+static HRESULT WINAPI dummy_QueryInterface(IUnknown *iface, REFIID iid, void **ppv)
+{
@@ -90,7 +89,7 @@ index f0d8247724d..b9c24b4b963 100644
return FALSE;
}
@@ -51,8 +92,8 @@ BOOL WINAPI UiaClientsAreListening(void)
@@ -36,8 +77,8 @@ BOOL WINAPI UiaClientsAreListening(void)
*/
HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value)
{
@@ -101,7 +100,7 @@ index f0d8247724d..b9c24b4b963 100644
return S_OK;
}
@@ -61,8 +102,8 @@ HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value)
@@ -46,8 +87,8 @@ HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value)
*/
HRESULT WINAPI UiaGetReservedNotSupportedValue(IUnknown **value)
{
@@ -112,7 +111,7 @@ index f0d8247724d..b9c24b4b963 100644
return S_OK;
}
@@ -81,7 +122,7 @@ int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid)
@@ -66,7 +107,7 @@ int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid)
LRESULT WINAPI UiaReturnRawElementProvider(HWND hwnd, WPARAM wParam,
LPARAM lParam, IRawElementProviderSimple *elprov)
{
@@ -122,5 +121,5 @@ index f0d8247724d..b9c24b4b963 100644
}
--
2.17.1
2.20.1

View File

@@ -1,4 +1,4 @@
From 885d9313f5fdd835fb753d2c2b30abfb49f54051 Mon Sep 17 00:00:00 2001
From 6d925cb20409888ada3e469a2a09b1bfc726fa79 Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Fri, 2 Oct 2020 11:29:24 -0500
Subject: [PATCH] bcrypt: Allow multiple backends to coexist.
@@ -8,9 +8,9 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
dlls/bcrypt/Makefile.in | 3 +-
dlls/bcrypt/bcrypt_internal.h | 3 +
dlls/bcrypt/gnutls.c | 32 ++++--
dlls/bcrypt/macos.c | 18 +++-
dlls/bcrypt/unixlib.c | 186 ++++++++++++++++++++++++++++++++++
5 files changed, 227 insertions(+), 15 deletions(-)
dlls/bcrypt/macos.c | 18 ++-
dlls/bcrypt/unixlib.c | 211 ++++++++++++++++++++++++++++++++++
5 files changed, 252 insertions(+), 15 deletions(-)
create mode 100644 dlls/bcrypt/unixlib.c
diff --git a/dlls/bcrypt/Makefile.in b/dlls/bcrypt/Makefile.in
@@ -27,11 +27,11 @@ index 24803fb2d7c..46a20d473dd 100644
RC_SRCS = version.rc
diff --git a/dlls/bcrypt/bcrypt_internal.h b/dlls/bcrypt/bcrypt_internal.h
index 463672db470..90551868cf0 100644
index eb136111509..3c7110d05f8 100644
--- a/dlls/bcrypt/bcrypt_internal.h
+++ b/dlls/bcrypt/bcrypt_internal.h
@@ -215,4 +215,7 @@ struct key_funcs
NTSTATUS (CDECL *key_import_ecc)( struct key *, UCHAR *, ULONG );
@@ -218,4 +218,7 @@ struct key_funcs
NTSTATUS (CDECL *key_import_rsa)( struct key *, UCHAR *, ULONG );
};
+struct key_funcs *gnutls_lib_init(DWORD reason);
@@ -39,10 +39,10 @@ index 463672db470..90551868cf0 100644
+
#endif /* __BCRYPT_INTERNAL_H */
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c
index 5ed51e8704c..7a1eada329c 100644
index 2f0c62bc6da..4a9dcf9de8a 100644
--- a/dlls/bcrypt/gnutls.c
+++ b/dlls/bcrypt/gnutls.c
@@ -347,9 +347,12 @@ fail:
@@ -372,9 +372,12 @@ fail:
static void gnutls_uninitialize(void)
{
@@ -58,8 +58,8 @@ index 5ed51e8704c..7a1eada329c 100644
}
struct buffer
@@ -1848,19 +1851,28 @@ static const struct key_funcs key_funcs =
key_import_ecc
@@ -1899,19 +1902,28 @@ static const struct key_funcs key_funcs =
key_import_rsa
};
-NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *ptr_in, void *ptr_out )
@@ -74,7 +74,7 @@ index 5ed51e8704c..7a1eada329c 100644
+ if (!gnutls_initialize()) return NULL;
+ return &key_funcs;
case DLL_PROCESS_DETACH:
gnutls_uninitialize();
if (libgnutls_handle) gnutls_uninitialize();
- break;
}
- return STATUS_SUCCESS;
@@ -95,11 +95,11 @@ index 5ed51e8704c..7a1eada329c 100644
+}
+#endif
diff --git a/dlls/bcrypt/macos.c b/dlls/bcrypt/macos.c
index d8bba46ad5c..8df5ca8645f 100644
index 44906519cef..2a88aec8362 100644
--- a/dlls/bcrypt/macos.c
+++ b/dlls/bcrypt/macos.c
@@ -287,11 +287,21 @@ static const struct key_funcs key_funcs =
key_import_ecc
@@ -302,11 +302,21 @@ static const struct key_funcs key_funcs =
key_import_rsa
};
-NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *ptr_in, void *ptr_out )
@@ -126,10 +126,10 @@ index d8bba46ad5c..8df5ca8645f 100644
#endif
diff --git a/dlls/bcrypt/unixlib.c b/dlls/bcrypt/unixlib.c
new file mode 100644
index 00000000000..791b5d54188
index 00000000000..9cbb25f5740
--- /dev/null
+++ b/dlls/bcrypt/unixlib.c
@@ -0,0 +1,186 @@
@@ -0,0 +1,211 @@
+#if 0
+#pragma makedep unix
+#endif
@@ -250,11 +250,30 @@ index 00000000000..791b5d54188
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_asymmetric_duplicate( struct key *key_orig, struct key *key_copy )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static void CDECL key_asymmetric_destroy( struct key *key )
+{
+ FIXME( "not implemented\n" );
+}
+
+static NTSTATUS CDECL key_asymmetric_decrypt( struct key *key, UCHAR *input, ULONG input_len,
+ UCHAR *output, ULONG *output_len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_import_rsa( struct key *key, UCHAR *input, ULONG input_len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static struct key_funcs key_funcs =
+{
+ key_set_property,
@@ -267,13 +286,16 @@ index 00000000000..791b5d54188
+ key_symmetric_destroy,
+ key_asymmetric_init,
+ key_asymmetric_generate,
+ key_asymmetric_decrypt,
+ key_asymmetric_duplicate,
+ key_asymmetric_sign,
+ key_asymmetric_verify,
+ key_asymmetric_destroy,
+ key_export_dsa_capi,
+ key_export_ecc,
+ key_import_dsa_capi,
+ key_import_ecc
+ key_import_ecc,
+ key_import_rsa,
+};
+
+NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *ptr_in, void *ptr_out )
@@ -299,6 +321,8 @@ index 00000000000..791b5d54188
+ RESOLVE_FUNC(symmetric_destroy)
+ RESOLVE_FUNC(asymmetric_init)
+ RESOLVE_FUNC(asymmetric_generate)
+ RESOLVE_FUNC(asymmetric_decrypt)
+ RESOLVE_FUNC(asymmetric_duplicate)
+ RESOLVE_FUNC(asymmetric_sign)
+ RESOLVE_FUNC(asymmetric_verify)
+ RESOLVE_FUNC(asymmetric_destroy)
@@ -306,6 +330,7 @@ index 00000000000..791b5d54188
+ RESOLVE_FUNC(export_ecc)
+ RESOLVE_FUNC(import_dsa_capi)
+ RESOLVE_FUNC(import_ecc)
+ RESOLVE_FUNC(import_rsa)
+
+#undef RESOLVE_FUNC
+
@@ -317,5 +342,5 @@ index 00000000000..791b5d54188
+
+#endif
--
2.28.0
2.30.2

View File

@@ -1,4 +1,4 @@
From dd993178a8e0f8db6b09e059ba39820c9b609913 Mon Sep 17 00:00:00 2001
From e2442f39015a5982bfd15479ee06d7163d36771d Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Fri, 2 Oct 2020 12:11:49 -0500
Subject: [PATCH] bcrypt: Implement BCryptSecretAgreement with libgcrypt.
@@ -9,19 +9,19 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
dlls/bcrypt/Makefile.in | 1 +
dlls/bcrypt/bcrypt_internal.h | 4 +
dlls/bcrypt/bcrypt_main.c | 55 ++++++-
dlls/bcrypt/gcrypt.c | 289 ++++++++++++++++++++++++++++++++++
dlls/bcrypt/gcrypt.c | 292 ++++++++++++++++++++++++++++++++++
dlls/bcrypt/gnutls.c | 3 +-
dlls/bcrypt/macos.c | 3 +-
dlls/bcrypt/tests/bcrypt.c | 2 +-
dlls/bcrypt/unixlib.c | 15 +-
9 files changed, 376 insertions(+), 10 deletions(-)
dlls/bcrypt/unixlib.c | 13 +-
9 files changed, 378 insertions(+), 9 deletions(-)
create mode 100644 dlls/bcrypt/gcrypt.c
diff --git a/configure.ac b/configure.ac
index 865aa924d07..35233aa5d08 100644
index b6b8d49342f3..7c1c8a7ddaf4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -45,6 +45,7 @@ AC_ARG_WITH(faudio, AS_HELP_STRING([--without-faudio],[do not use FAudio (XAu
@@ -46,6 +46,7 @@ AC_ARG_WITH(faudio, AS_HELP_STRING([--without-faudio],[do not use FAudio (XAu
AC_ARG_WITH(float-abi, AS_HELP_STRING([--with-float-abi=abi],[specify the ABI (soft|softfp|hard) for ARM platforms]))
AC_ARG_WITH(fontconfig,AS_HELP_STRING([--without-fontconfig],[do not use fontconfig]))
AC_ARG_WITH(freetype, AS_HELP_STRING([--without-freetype],[do not use the FreeType library]))
@@ -29,7 +29,7 @@ index 865aa924d07..35233aa5d08 100644
AC_ARG_WITH(gettext, AS_HELP_STRING([--without-gettext],[do not use gettext]))
AC_ARG_WITH(gettextpo, AS_HELP_STRING([--with-gettextpo],[use the GetTextPO library to rebuild po files]),
[if test "x$withval" = "xno"; then ac_cv_header_gettext_po_h=no; fi])
@@ -2000,6 +2001,19 @@ WINE_NOTICE_WITH(vkd3d,[test "x$ac_cv_lib_soname_vkd3d" = "x"],
@@ -1989,6 +1990,19 @@ WINE_NOTICE_WITH(vkd3d,[test "x$ac_cv_lib_soname_vkd3d" = "x"],
[vkd3d ${notice_platform}development files not found (or too old), Direct3D 12 won't be supported.])
test "x$ac_cv_lib_soname_vkd3d" != "x" || enable_d3d12=${enable_d3d12:-no}
@@ -50,7 +50,7 @@ index 865aa924d07..35233aa5d08 100644
AC_SUBST(EXTRACFLAGS,"")
diff --git a/dlls/bcrypt/Makefile.in b/dlls/bcrypt/Makefile.in
index 46a20d473dd..4a3016784af 100644
index 46a20d473dd7..4a3016784af3 100644
--- a/dlls/bcrypt/Makefile.in
+++ b/dlls/bcrypt/Makefile.in
@@ -7,6 +7,7 @@ EXTRADLLFLAGS = -mno-cygwin
@@ -62,10 +62,10 @@ index 46a20d473dd..4a3016784af 100644
macos.c \
md2.c \
diff --git a/dlls/bcrypt/bcrypt_internal.h b/dlls/bcrypt/bcrypt_internal.h
index 7563d19aac5..f4fcfebabd6 100644
index 3c7110d05f84..e7991eac077a 100644
--- a/dlls/bcrypt/bcrypt_internal.h
+++ b/dlls/bcrypt/bcrypt_internal.h
@@ -191,6 +191,8 @@ struct key
@@ -192,6 +192,8 @@ struct key
struct secret
{
struct object hdr;
@@ -74,10 +74,10 @@ index 7563d19aac5..f4fcfebabd6 100644
};
struct key_funcs
@@ -212,9 +214,11 @@ struct key_funcs
NTSTATUS (CDECL *key_export_ecc)( struct key *, UCHAR *, ULONG, ULONG * );
@@ -216,9 +218,11 @@ struct key_funcs
NTSTATUS (CDECL *key_import_dsa_capi)( struct key *, UCHAR *, ULONG );
NTSTATUS (CDECL *key_import_ecc)( struct key *, UCHAR *, ULONG );
NTSTATUS (CDECL *key_import_rsa)( struct key *, UCHAR *, ULONG );
+ NTSTATUS (CDECL *key_compute_secret_ecc)( unsigned char *privkey_in, struct key *pubkey_in, struct secret *secret );
};
@@ -87,10 +87,10 @@ index 7563d19aac5..f4fcfebabd6 100644
#endif /* __BCRYPT_INTERNAL_H */
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index a91f31e9f09..6787b0d66cb 100644
index a1423dcd8368..0655c5dcfe81 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -1807,9 +1807,12 @@ NTSTATUS WINAPI BCryptSecretAgreement(BCRYPT_KEY_HANDLE privatekey, BCRYPT_KEY_H
@@ -1932,9 +1932,12 @@ NTSTATUS WINAPI BCryptSecretAgreement(BCRYPT_KEY_HANDLE privatekey, BCRYPT_KEY_H
{
struct key *privkey = privatekey;
struct key *pubkey = publickey;
@@ -104,7 +104,7 @@ index a91f31e9f09..6787b0d66cb 100644
if (!privkey || privkey->hdr.magic != MAGIC_KEY) return STATUS_INVALID_HANDLE;
if (!pubkey || pubkey->hdr.magic != MAGIC_KEY) return STATUS_INVALID_HANDLE;
@@ -1818,18 +1821,39 @@ NTSTATUS WINAPI BCryptSecretAgreement(BCRYPT_KEY_HANDLE privatekey, BCRYPT_KEY_H
@@ -1943,18 +1946,39 @@ NTSTATUS WINAPI BCryptSecretAgreement(BCRYPT_KEY_HANDLE privatekey, BCRYPT_KEY_H
if (!(secret = heap_alloc_zero( sizeof(*secret) ))) return STATUS_NO_MEMORY;
secret->hdr.magic = MAGIC_SECRET;
@@ -146,7 +146,7 @@ index a91f31e9f09..6787b0d66cb 100644
heap_free( secret );
return STATUS_SUCCESS;
}
@@ -1839,12 +1863,33 @@ NTSTATUS WINAPI BCryptDeriveKey(BCRYPT_SECRET_HANDLE handle, LPCWSTR kdf, BCrypt
@@ -1964,12 +1988,33 @@ NTSTATUS WINAPI BCryptDeriveKey(BCRYPT_SECRET_HANDLE handle, LPCWSTR kdf, BCrypt
{
struct secret *secret = handle;
@@ -184,10 +184,10 @@ index a91f31e9f09..6787b0d66cb 100644
BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
diff --git a/dlls/bcrypt/gcrypt.c b/dlls/bcrypt/gcrypt.c
new file mode 100644
index 00000000000..d127e1a2903
index 000000000000..e72c27feb519
--- /dev/null
+++ b/dlls/bcrypt/gcrypt.c
@@ -0,0 +1,289 @@
@@ -0,0 +1,292 @@
+#if 0
+#pragma makedep unix
+#endif
@@ -449,6 +449,9 @@ index 00000000000..d127e1a2903
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ key_compute_secret_ecc
+};
+
@@ -478,38 +481,38 @@ index 00000000000..d127e1a2903
+}
+#endif
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c
index cffaa2a5c77..aa60054d315 100644
index 9490ea8612a8..78d0f2d95966 100644
--- a/dlls/bcrypt/gnutls.c
+++ b/dlls/bcrypt/gnutls.c
@@ -1754,7 +1754,8 @@ static struct key_funcs key_funcs =
key_export_dsa_capi,
@@ -1949,7 +1949,8 @@ static const struct key_funcs key_funcs =
key_export_ecc,
key_import_dsa_capi,
- key_import_ecc
+ key_import_ecc,
key_import_ecc,
- key_import_rsa
+ key_import_rsa,
+ NULL
};
struct key_funcs * gnutls_lib_init( DWORD reason )
diff --git a/dlls/bcrypt/macos.c b/dlls/bcrypt/macos.c
index 5868b445625..a631d42b3f1 100644
index 2a88aec8362c..3ee3515f9de2 100644
--- a/dlls/bcrypt/macos.c
+++ b/dlls/bcrypt/macos.c
@@ -277,7 +277,8 @@ static struct key_funcs key_funcs =
key_export_dsa_capi,
@@ -299,7 +299,8 @@ static const struct key_funcs key_funcs =
key_export_ecc,
key_import_dsa_capi,
- key_import_ecc
+ key_import_ecc,
key_import_ecc,
- key_import_rsa
+ key_import_rsa,
+ NULL
};
struct key_funcs * macos_lib_init( DWORD reason )
diff --git a/dlls/bcrypt/tests/bcrypt.c b/dlls/bcrypt/tests/bcrypt.c
index d499ce65a65..334694c4336 100644
index 456727d04a96..6be406dee21f 100644
--- a/dlls/bcrypt/tests/bcrypt.c
+++ b/dlls/bcrypt/tests/bcrypt.c
@@ -2102,7 +2102,7 @@ static void test_ECDH(void)
@@ -2163,7 +2163,7 @@ static void test_ECDH(void)
goto raw_secret_end;
}
@@ -519,11 +522,11 @@ index d499ce65a65..334694c4336 100644
if (status != STATUS_SUCCESS)
{
diff --git a/dlls/bcrypt/unixlib.c b/dlls/bcrypt/unixlib.c
index 791b5d54188..a691d82afe2 100644
index 9cbb25f5740c..6f8ff7f97887 100644
--- a/dlls/bcrypt/unixlib.c
+++ b/dlls/bcrypt/unixlib.c
@@ -123,6 +123,12 @@ static void CDECL key_asymmetric_destroy( struct key *key )
FIXME( "not implemented\n" );
@@ -142,6 +142,12 @@ static NTSTATUS CDECL key_import_rsa( struct key *key, UCHAR *input, ULONG input
return STATUS_NOT_IMPLEMENTED;
}
+static NTSTATUS CDECL key_compute_secret_ecc (unsigned char *privkey_in, struct key *pubkey_in, struct secret *secret)
@@ -535,13 +538,11 @@ index 791b5d54188..a691d82afe2 100644
static struct key_funcs key_funcs =
{
key_set_property,
@@ -141,13 +147,15 @@ static struct key_funcs key_funcs =
key_export_dsa_capi,
key_export_ecc,
@@ -164,12 +170,14 @@ static struct key_funcs key_funcs =
key_import_dsa_capi,
- key_import_ecc
+ key_import_ecc,
+ key_compute_secret_ecc
key_import_ecc,
key_import_rsa,
+ key_compute_secret_ecc,
};
NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *ptr_in, void *ptr_out )
@@ -552,7 +553,7 @@ index 791b5d54188..a691d82afe2 100644
if (reason == DLL_PROCESS_ATTACH)
{
@@ -155,7 +163,9 @@ NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *p
@@ -177,7 +185,9 @@ NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *p
if (macos_funcs && macos_funcs->key_##name) \
key_funcs.key_##name = macos_funcs->key_##name; \
if (gnutls_funcs && gnutls_funcs->key_##name) \
@@ -563,14 +564,14 @@ index 791b5d54188..a691d82afe2 100644
RESOLVE_FUNC(set_property)
RESOLVE_FUNC(symmetric_init)
@@ -174,6 +184,7 @@ NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *p
RESOLVE_FUNC(export_ecc)
@@ -199,6 +209,7 @@ NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *p
RESOLVE_FUNC(import_dsa_capi)
RESOLVE_FUNC(import_ecc)
RESOLVE_FUNC(import_rsa)
+ RESOLVE_FUNC(compute_secret_ecc)
#undef RESOLVE_FUNC
--
2.28.0
2.29.2

View File

@@ -1,4 +1,4 @@
From 01530fae68970b0c0af8811c5f6c5ea85c14372c Mon Sep 17 00:00:00 2001
From 305131e59c071ca84e4447ab053b04bf4023fee8 Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Tue, 7 Jan 2020 14:22:49 -0600
Subject: [PATCH] bcrypt: Implement BCRYPT_KDF_HASH.
@@ -11,10 +11,10 @@ Signed-off-by: Derek Lesho <dlesho at codeweavers.com>
2 files changed, 108 insertions(+), 3 deletions(-)
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index 8dae41a2e2e..67be417aa61 100644
index 0655c5dcfe81..70e914bd41f1 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -1837,7 +1837,113 @@ NTSTATUS WINAPI BCryptDeriveKey(BCRYPT_SECRET_HANDLE handle, LPCWSTR kdf, BCrypt
@@ -1993,7 +1993,113 @@ NTSTATUS WINAPI BCryptDeriveKey(BCRYPT_SECRET_HANDLE handle, LPCWSTR kdf, BCrypt
if (!secret || secret->hdr.magic != MAGIC_SECRET) return STATUS_INVALID_HANDLE;
if (!kdf) return STATUS_INVALID_PARAMETER;
@@ -130,10 +130,10 @@ index 8dae41a2e2e..67be417aa61 100644
ULONG n;
ULONG secret_length = secret->len;
diff --git a/dlls/bcrypt/tests/bcrypt.c b/dlls/bcrypt/tests/bcrypt.c
index 5701a0a30ce..d4ffb3fe69c 100644
index 6be406dee21f..b13432523d15 100644
--- a/dlls/bcrypt/tests/bcrypt.c
+++ b/dlls/bcrypt/tests/bcrypt.c
@@ -2132,7 +2132,7 @@ static void test_ECDH(void)
@@ -2180,7 +2180,7 @@ static void test_ECDH(void)
raw_secret_end:
status = pBCryptDeriveKey(secret, BCRYPT_KDF_HASH, &hash_params, NULL, 0, &size, 0);
@@ -142,7 +142,7 @@ index 5701a0a30ce..d4ffb3fe69c 100644
if (status != STATUS_SUCCESS)
{
@@ -2666,7 +2666,6 @@ static void test_SecretAgreement(void)
@@ -2716,7 +2716,6 @@ static void test_SecretAgreement(void)
ok(status == STATUS_INVALID_PARAMETER, "got %08x\n", status);
status = pBCryptDeriveKey(secret, L"HASH", NULL, NULL, 0, &size, 0);
@@ -151,5 +151,5 @@ index 5701a0a30ce..d4ffb3fe69c 100644
status = pBCryptDestroyHash(secret);
--
2.28.0
2.29.2

View File

@@ -2,4 +2,3 @@ Fixes: [47699] Multiple games fail to connect to online services (missing BCrypt
# Needs to be moved to the unix lib, but that's a nontrivial amount of work, and
# using gcrypt is the wrong way forward (we should expose the missing APIs from
# gnutls instead).
#Disabled: true

View File

@@ -1,8 +1,7 @@
From 25b5e818272cf6fc52a8707c80b9ade3a5ca5df5 Mon Sep 17 00:00:00 2001
From a207d7f2c77296798e047ed03d88d8a060139aff Mon Sep 17 00:00:00 2001
From: Jason Edmeades <us@edmeades.me.uk>
Date: Tue, 16 Jul 2019 13:49:18 +1000
Subject: [PATCH 1/2] cmd: Support for launching programs based on file
association
Subject: [PATCH] cmd: Support for launching programs based on file association
cmd already handles exe, cmd, bat etc but if you run a file with another extension,
then use the associations set in the registry (for example via ftype / assoc) to
@@ -12,14 +11,14 @@ fred.msi for msiexec to be launched.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=18154
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=36646
---
programs/cmd/wcmdmain.c | 140 +++++++++++++++++++++++++++++-----------
1 file changed, 104 insertions(+), 36 deletions(-)
programs/cmd/wcmdmain.c | 138 +++++++++++++++++++++++++++++-----------
1 file changed, 102 insertions(+), 36 deletions(-)
diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c
index 29e498a48d..2a9e4c75ee 100644
index cacb7ea7751..19a807c1624 100644
--- a/programs/cmd/wcmdmain.c
+++ b/programs/cmd/wcmdmain.c
@@ -1142,8 +1142,10 @@ void WCMD_run_program (WCHAR *command, BOOL called)
@@ -1135,8 +1135,10 @@ void WCMD_run_program (WCHAR *command, BOOL called)
/* 1. If extension supplied, see if that file exists */
if (extensionsupplied) {
@@ -31,7 +30,7 @@ index 29e498a48d..2a9e4c75ee 100644
}
}
@@ -1174,6 +1176,7 @@ void WCMD_run_program (WCHAR *command, BOOL called)
@@ -1166,6 +1168,7 @@ void WCMD_run_program (WCHAR *command, BOOL called)
}
if (GetFileAttributesW(thisDir) != INVALID_FILE_ATTRIBUTES) {
@@ -39,17 +38,9 @@ index 29e498a48d..2a9e4c75ee 100644
found = TRUE;
thisExt = NULL;
}
@@ -1191,58 +1194,123 @@ void WCMD_run_program (WCHAR *command, BOOL called)
WCHAR *ext = wcsrchr( thisDir, '.' );
static const WCHAR batExt[] = {'.','b','a','t','\0'};
static const WCHAR cmdExt[] = {'.','c','m','d','\0'};
+ static const WCHAR exeExt[] = {'.','e','x','e','\0'};
+ static const WCHAR comExt[] = {'.','c','o','m','\0'};
WINE_TRACE("Found as %s\n", wine_dbgstr_w(thisDir));
@@ -1187,52 +1190,115 @@ void WCMD_run_program (WCHAR *command, BOOL called)
/* Special case BAT and CMD */
if (ext && (!wcsicmp(ext, batExt) || !wcsicmp(ext, cmdExt))) {
if (ext && (!wcsicmp(ext, L".bat") || !wcsicmp(ext, L".cmd"))) {
BOOL oldinteractive = interactive;
+ WINE_TRACE("Calling batch program\n");
interactive = FALSE;
@@ -95,7 +86,7 @@ index 29e498a48d..2a9e4c75ee 100644
+
+ /* If it is not a .com or .exe, try to launch through ShellExecuteExW
+ which takes into account the association for the extension. */
+ if (ext && (wcsicmp(ext, exeExt) && wcsicmp(ext, comExt))) {
+ if (ext && (wcsicmp(ext, L".exe") && wcsicmp(ext, L".com"))) {
+
+ SHELLEXECUTEINFOW shexw;
+ BOOL rc;
@@ -199,5 +190,5 @@ index 29e498a48d..2a9e4c75ee 100644
}
--
2.17.1
2.29.2

View File

@@ -1,167 +0,0 @@
From b037d19858277d7dde0df6cdf4678a55517366af Mon Sep 17 00:00:00 2001
From: Alex Henrie <alexhenrie24@gmail.com>
Date: Tue, 22 Sep 2020 22:00:11 -0600
Subject: [PATCH] winspool: Add sRGB color profile
"This profile is made available by the International Color Consortium,
and may be copied, distributed, embedded, made, used, and sold without
restriction. Altered versions of this profile shall have the original
identification and copyright information removed and shall not be
misrepresented as the original profile."
See http://www.color.org/srgbprofiles.xalter
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=37396
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
---
.../winspool.drv/sRGB_Color_Space_Profile.icm | Bin 0 -> 3024 bytes
dlls/winspool.drv/winspool.rc | 3 ++
dlls/winspool.drv/wspool.c | 38 ++++++++++++++++++
dlls/winspool.drv/wspool.h | 2 +
4 files changed, 43 insertions(+)
create mode 100644 dlls/winspool.drv/sRGB_Color_Space_Profile.icm
diff --git a/dlls/winspool.drv/sRGB_Color_Space_Profile.icm b/dlls/winspool.drv/sRGB_Color_Space_Profile.icm
new file mode 100644
index 0000000000000000000000000000000000000000..49afbfef10f22a1832590b68369d2f248ea553b9
GIT binary patch
literal 3024
zcmb`Jc{r5o8^@pboqe;-klom~#=Z=)?<7n1RL0C;EQ4W?v`H$Qlq6e;oU(N2=!6`p
zq_j9fq0&N*O8IqkN}I~>9j@P{b6vkb&vRYx^M3C8x$pP6pZoda{Q^K51jvAqCy}2f
z2yl0zhlYjIaZeGKxM&3c7CSY0nf@_DE7pfmuw>n3h<vtUtxuW{AMLJ;(HbZuIuESG
z{a=#ca8ua;KrYBCI||tx;d+E=QGo%@2zLR1C&&E2f*+WZ$l(A$xPip)i&@Gg`iXKA
zgo!)=h{zhCC30D*2xlU!5fz`DhH#b0FIbL0E8;XRI~MWxB1}#fa*;fus4sgn(nRs3
zP*Ds!Ss>yBge}>zEF^|hhw$p<`Vm43NktlHVq|Q#Wc`bi=uVbDr*Q%R@mv7f?y!Y|
z^kpAf^uhola$__g2b6(2&;bl!0xW?IZ~(5r3;2RS5C%2@Hi!j@Kmam8HrNI7Kmj-i
zj(`eK4eCGxXa=pI9dv;!;5xVs2Ehmz2NPf#yasdN16Y6{2nSIhDkKM~K$?&~WCAfE
zJIEDU3k5)7P$U!s@gX6U4ef>spkk;3s(~7yU!e=o73d~31U-Nzp&96J=nIU3$uJF8
zg0)~nm<c<=-f$qi5sraV;4C;7J^+`&weT6Z4ZZ^3hDYED_%%F_0w@wn2BnH(pqMCU
zlrJhA6^#<0wxjY<rKnm|GpZBShq{ZJK+U2)qp@fznvQ0mZO|U*AT%4Dg5HiUL|35e
z(QW8n^j-8MdJg>^L%}Fw^fA^LPfRE#29trw!<1r9Va{W&VMZ|1m=9PiRtBq$wZwX0
z!?1DKt=K~BF>DL=GIj_%g`LOYaB?_(oGs25$HJxI@^Iz2Gq_8*VcazC6P|=u!JFXS
z@ZoqqJ_lclZ^U=whw(4)3j_&*Cc&EEOW+W;5Q+$OgigX8!ZcxlC`r^N+7bhaal~E3
zGGa6F8u1bF9f?FzBUzFBNj%a{QW@zi=>}<%^qDM0)+0NUBgjJX0rF|`W%2{^I|_xO
zMRA~nQ_?60C=HaWlqZx=VpK5$F;6j$*bcEuu{N<`u{YubaZPbY@lE1c;-%u}#P5jD
zN)RNpB%CE!65AyzB`!#eNz6-9C5<J0B@-nJB^xDgO1_lBNoh&BN^zuerA|s+m71cW
zsOnT_Dx12ST1UM`ou*-F+B8pE9Ib%%3vGZlCoLsyCLJuDDP1XjQF=lKC8H(dDU%>m
zB-1K0D)VKP(kjPQ+*SKmHLn_8^-)$q)<Kpln=jiUJ0kl<jxOga7cX~6u3hf2JX&5)
z-d{dL{<!=#`B?>;f{g-OAzz_Y;h`d|sHYg9xK;6_V!z_NlCqM!QnFIH(p9BdWf^4$
z<v8UM<!<E}6{?Dz3Qwg(<&w%Px-{L9o<J|7_tNK76;(Y{g{n2G1F8#Z+G;^+IchCx
zkJX9lO!a8>67?SSISmyJAB}8{CXI)h1Wl%9tmaY8KFyC>+FBu6d$roNUTVu~dunHC
zH)%i8q3GD_r0CS@+|$MCGIis1kLeET!FuL;v3iwycl2R>3w@scG5w*{nAKLR`KxPJ
zk1@y$M@BlMi7{y)W3bjB$DrNdjiH8NxZxqgKEv-u=0*udbw=aHQpR4!ImVsFf1Bu;
zuuUpW?wL|d-As3wc9_03(>LRq9XGpgPBr&2-)r7u{>{SDLSWHsF=MG=8EIK%ImV<h
z{g{Q!8&()AC#xM+T~?p1Ev(b5Tdn`HVc5jmG}^peqrHZ^rf$uYt(q;%w#IhCj&2ue
zcfxMMUe%suUu*x&LEVAlaLVC@qpo9|;~B>{PDV}wr}Iu9ovod>IbU``xwyOJy9~HW
zxdypbxIS@HbBl3na+`BEci-xM*#qO@?QzIs%u~se?b+Zt=Vj@&&8yd&?7iN*!u#1;
zy|se1oj$OSm(O9JN9#1#@z=Hc0$)$x!@iIGwEa^2e)q@v`}tS;KMybt$PVaRPhG!x
zedGEMflh%%f#X3sLBgP(VDaFH;D+FjAub`sArqm7q1!@lhslTW!aBln;lbgj!sj=*
zZaA`GI>J06FJg3~_QuSOH#f;|O4xL9v-oD#=5vvl$dJg!$geD4RxN8j$}_4eYL4y9
zKFWU0ap072X1KQ8V(yD*+vwuxmoc_6hht`9?PE)0XL-)N3f|i|kGSf%kMX|or{fnB
zLK0dM@rjX%7x+^Acz$n^a#Ci}P_lk<Uh+hWb;^;HIf1v}R4SCZF|{L&hWtqSg*w7L
z!pU^I^vd*48NnInG9@$lnf+Vzw(Q^XBFio7=dI|i?5#c7s@c1;C$~9ntJw~1kJ{d|
zLw!f?j_IB5JL`85cg64eBgZJGIOqNDklmfRO1V38r}nt-Y04AJ6XcEUwb@&}5514K
zZ(zUa{__3b^Evsq3XBR$3%(Yz3vc~o{8QOaiwB|)3=~-u9Y2UY$UiuG$o^1$v1D;p
z@zi0T!)+z>lKhhQM>Ze1S!z~VeUx}qcyyv{ZCOXTM)|?=uNAQsBb82-EmewD`>Q@4
z;~X14?r^-hTB*9A`pXI4iTgF~HEp$8wWTMqC(}<puM4j0`<eN3!zuYw1*g89=AWLZ
z52){Luxw~(RBSA2f}4a*GiM^s4F2NsOGh)Kxu!*?rQj?$D?Iz^*T`Q-TfJL*&N0t5
z|EBp{)p_dq{5Gg<OWRy~Z2Lq<SjW%>uM0h$Hl62xH~9T@mugq#Md^!0-Nf$P?!`-4
zm*y`gU!J`Zb7iV$bI<tI(5v@){d)(ld0)G6-R=6-KF7XGH*9Zo-L$@W;TH2&`)!Nc
zZT;r`=l?MO<NScdK-(S5I~{{ogPlWbhPsFChp*gqxqJPd=e^q_>qdq~gGTR<MT||{
z=iGn!AmPE=hv^R&#&<r#Jj#D8@woJf;*;8^x=&jsEG8~ax=i*zTmNi)iaquE&(uG^
zPUk+SJTHBr@}l9T$;+-8x0%6L8(vMnPJX>GoA)2d|5UxvdGp&}4uAE}h0aaC6}(;i
zyYQXdyVLK@-uKM=%|H2&_+jB={wKLl^`Dua`@V#Hd9jf375BC5o9?&H@7~`ZEha85
z{-8k&JYAjX7RFW<77P=HG2Mk5%@QW0(M8J6IVmAYD4?%TX0f?+23;gpmIcJWHm~TE
zsB!?>_W&UKaK(pgBT{F`Sk`1q_=ApIvi~>1Kja-poFc8Ycg2@f3jlK-0Mx-$UJPB7
z<Qx!4|Dg|z0B$r_z~v)H4d!t(c>EaT{Co~CjhDoy^Z4|Cv`LizZ;q8ZSF~{&Hxtp1
zNS#T^TLiqA*fhE)KaDHkvqTlK5|(a9AgVDnNsz`9Ca$I<O41yF)M!(arP?5}3nKHL
eE-t>)0svP6z_+5s#f6&1#cxP2P~!kx7XBBF2+<<|
literal 0
HcmV?d00001
diff --git a/dlls/winspool.drv/winspool.rc b/dlls/winspool.drv/winspool.rc
index 50772ce60bb..1b573be096e 100644
--- a/dlls/winspool.drv/winspool.rc
+++ b/dlls/winspool.drv/winspool.rc
@@ -47,6 +47,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
/* @makedep: generic.ppd */
1 PPDFILE generic.ppd
+/* @makedep: sRGB_Color_Space_Profile.icm */
+IDR_SRGB_ICM RCDATA sRGB_Color_Space_Profile.icm
+
#define WINE_FILENAME_STR "winspool.drv"
#define WINE_FILEDESCRIPTION_STR "Wine core printer driver"
diff --git a/dlls/winspool.drv/wspool.c b/dlls/winspool.drv/wspool.c
index bbfb0fb0f42..baa7bfdb455 100644
--- a/dlls/winspool.drv/wspool.c
+++ b/dlls/winspool.drv/wspool.c
@@ -104,6 +104,43 @@ BOOL load_backend(void)
return FALSE;
}
+static void create_color_profiles(void)
+{
+ static const WCHAR color_dir[] = {'\\','s','p','o','o','l',
+ '\\','d','r','i','v','e','r','s',
+ '\\','c','o','l','o','r','\\',0};
+ static const WCHAR srgb_icm[] = {'s','R','G','B',' ',
+ 'C','o','l','o','r',' ',
+ 'S','p','a','c','e',' ',
+ 'P','r','o','f','i','l','e','.','i','c','m',0};
+ WCHAR profile_path[MAX_PATH];
+ HANDLE file;
+ HRSRC res;
+ DWORD size, written;
+ char *data;
+ BOOL ret;
+
+ GetSystemDirectoryW(profile_path, ARRAY_SIZE(profile_path));
+ lstrcatW(profile_path, color_dir);
+ lstrcatW(profile_path, srgb_icm);
+
+ file = CreateFileW(profile_path, GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
+ if (file == INVALID_HANDLE_VALUE)
+ return;
+
+ ret = ((res = FindResourceA(WINSPOOL_hInstance, MAKEINTRESOURCEA(IDR_SRGB_ICM), (const char *)RT_RCDATA)) &&
+ (size = SizeofResource(WINSPOOL_hInstance, res)) &&
+ (data = LoadResource(WINSPOOL_hInstance, res)) &&
+ WriteFile(file, data, size, &written, NULL) &&
+ written == size);
+ CloseHandle(file);
+ if (!ret)
+ {
+ ERR("Failed to create %s\n", wine_dbgstr_w(profile_path));
+ DeleteFileW(profile_path);
+ }
+}
+
/******************************************************************************
* DllMain
*
@@ -118,6 +155,7 @@ BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD reason, LPVOID lpReserved)
WINSPOOL_hInstance = hInstance;
DisableThreadLibraryCalls(hInstance);
WINSPOOL_LoadSystemPrinters();
+ create_color_profiles();
break;
}
case DLL_PROCESS_DETACH:
diff --git a/dlls/winspool.drv/wspool.h b/dlls/winspool.drv/wspool.h
index 06c28231330..a229b1ffe88 100644
--- a/dlls/winspool.drv/wspool.h
+++ b/dlls/winspool.drv/wspool.h
@@ -33,5 +33,7 @@ extern void WINSPOOL_LoadSystemPrinters(void) DECLSPEC_HIDDEN;
#define IDS_FILE_EXISTS 11
#define IDS_CANNOT_OPEN 12
+#define IDR_SRGB_ICM 2
+
#define FILENAME_DIALOG 100
#define EDITBOX 201
--
2.28.0

View File

@@ -1 +0,0 @@
Fixes: [37396] Add sRGB color profile.

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