Compare commits

...

20 Commits
v6.6 ... 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
70 changed files with 451 additions and 5571 deletions

View File

@@ -1,4 +1,4 @@
From 881e39d338d1b8faed36440376460d498262c532 Mon Sep 17 00:00:00 2001
From 1d756dd5a98e84afa53a487cd6b7ecbf0a576422 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 19 Jan 2017 16:54:42 +0100
Subject: [PATCH] wined3d: Add wined3d_resource_map_info function.
@@ -13,10 +13,10 @@ Subject: [PATCH] wined3d: Add wined3d_resource_map_info function.
6 files changed, 70 insertions(+)
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
index 89dab8ebfdd..5ef9a48eeb7 100644
index ea21f85bc9e..d030a1cecd6 100644
--- a/dlls/wined3d/buffer.c
+++ b/dlls/wined3d/buffer.c
@@ -1121,6 +1121,24 @@ static HRESULT buffer_resource_sub_resource_map(struct wined3d_resource *resourc
@@ -949,6 +949,24 @@ static HRESULT buffer_resource_sub_resource_map(struct wined3d_resource *resourc
return WINED3D_OK;
}
@@ -41,7 +41,7 @@ index 89dab8ebfdd..5ef9a48eeb7 100644
static HRESULT buffer_resource_sub_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx)
{
struct wined3d_buffer *buffer = buffer_from_resource(resource);
@@ -1279,6 +1297,7 @@ static const struct wined3d_resource_ops buffer_resource_ops =
@@ -1085,6 +1103,7 @@ static const struct wined3d_resource_ops buffer_resource_ops =
buffer_resource_preload,
buffer_resource_unload,
buffer_resource_sub_resource_map,
@@ -50,11 +50,11 @@ index 89dab8ebfdd..5ef9a48eeb7 100644
};
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index bba940f42cb..ff31c004b06 100644
index 6e34605f547..b3a46950f4e 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -383,6 +383,14 @@ HRESULT CDECL wined3d_resource_map(struct wined3d_resource *resource, unsigned i
return wined3d_cs_map(resource->device->cs, resource, sub_resource_idx, map_desc, box, flags);
@@ -323,6 +323,14 @@ HRESULT CDECL wined3d_resource_map(struct wined3d_resource *resource, unsigned i
return wined3d_device_context_map(&resource->device->cs->c, resource, sub_resource_idx, map_desc, box, flags);
}
+HRESULT CDECL wined3d_resource_map_info(struct wined3d_resource *resource, unsigned int sub_resource_idx,
@@ -69,10 +69,10 @@ index bba940f42cb..ff31c004b06 100644
{
TRACE("resource %p, sub_resource_idx %u.\n", resource, sub_resource_idx);
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 7c9c8298519..73e79ff25b5 100644
index 333002ebfd5..ad34329af1d 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -3155,6 +3155,36 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour
@@ -3509,6 +3509,36 @@ static HRESULT texture_resource_sub_resource_map(struct wined3d_resource *resour
return WINED3D_OK;
}
@@ -109,7 +109,7 @@ index 7c9c8298519..73e79ff25b5 100644
static HRESULT texture_resource_sub_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx)
{
struct wined3d_texture_sub_resource *sub_resource;
@@ -3207,6 +3237,7 @@ static const struct wined3d_resource_ops texture_resource_ops =
@@ -3561,6 +3591,7 @@ static const struct wined3d_resource_ops texture_resource_ops =
texture_resource_preload,
texture_resource_unload,
texture_resource_sub_resource_map,
@@ -118,10 +118,10 @@ index 7c9c8298519..73e79ff25b5 100644
};
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec
index e03c57055b7..f68f8199f7e 100644
index 7c81eff1593..63e7b82abda 100644
--- a/dlls/wined3d/wined3d.spec
+++ b/dlls/wined3d/wined3d.spec
@@ -218,6 +218,7 @@
@@ -230,6 +230,7 @@
@ cdecl wined3d_resource_get_parent(ptr)
@ cdecl wined3d_resource_get_priority(ptr)
@ cdecl wined3d_resource_map(ptr long ptr ptr long)
@@ -130,10 +130,10 @@ index e03c57055b7..f68f8199f7e 100644
@ cdecl wined3d_resource_set_parent(ptr ptr)
@ cdecl wined3d_resource_set_priority(ptr long)
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 8f9ad1ce856..c7f75d1983c 100644
index 4d5f4765f57..385d0511d56 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -3368,6 +3368,8 @@ struct wined3d_resource_ops
@@ -4046,6 +4046,8 @@ struct wined3d_resource_ops
void (*resource_unload)(struct wined3d_resource *resource);
HRESULT (*resource_sub_resource_map)(struct wined3d_resource *resource, unsigned int sub_resource_idx,
struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags);
@@ -143,10 +143,10 @@ index 8f9ad1ce856..c7f75d1983c 100644
};
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index bafab04d3d3..ea50fb7c8d4 100644
index 2c4b93ce805..760bb709c2b 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -1851,6 +1851,13 @@ struct wined3d_map_desc
@@ -1861,6 +1861,13 @@ struct wined3d_map_desc
void *data;
};
@@ -160,7 +160,7 @@ index bafab04d3d3..ea50fb7c8d4 100644
struct wined3d_sub_resource_data
{
const void *data;
@@ -2663,6 +2670,8 @@ void * __cdecl wined3d_resource_get_parent(const struct wined3d_resource *resour
@@ -2749,6 +2756,8 @@ void * __cdecl wined3d_resource_get_parent(const struct wined3d_resource *resour
DWORD __cdecl wined3d_resource_get_priority(const struct wined3d_resource *resource);
HRESULT __cdecl wined3d_resource_map(struct wined3d_resource *resource, unsigned int sub_resource_idx,
struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags);
@@ -170,5 +170,5 @@ index bafab04d3d3..ea50fb7c8d4 100644
void __cdecl wined3d_resource_set_parent(struct wined3d_resource *resource, void *parent);
DWORD __cdecl wined3d_resource_set_priority(struct wined3d_resource *resource, DWORD priority);
--
2.24.0
2.30.2

View File

@@ -1,20 +1,20 @@
From 2aca1492440a076d00c910b6479b76fe69c1b2ee Mon Sep 17 00:00:00 2001
From 8fe0dad5a51a6ddd712dfc87949e4b3d453c9e0f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 31 Aug 2017 05:04:15 +0200
Subject: [PATCH] d3d11: Implement d3d11_deferred_context_UpdateSubresource.
---
dlls/d3d11/device.c | 75 +++++++++++++++++++++++++++++++++++++-
dlls/wined3d/resource.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++
dlls/d3d11/device.c | 75 ++++++++++++++++++++++++++++++-
dlls/wined3d/resource.c | 93 +++++++++++++++++++++++++++++++++++++++
dlls/wined3d/wined3d.spec | 1 +
include/wine/wined3d.h | 2 +
4 files changed, 170 insertions(+), 1 deletion(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index c83d6a0..4f3700d 100644
index 21da04547a6..70eecdd5a9e 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -45,6 +45,7 @@ enum deferred_cmd
@@ -69,6 +69,7 @@ enum deferred_cmd
DEFERRED_COPYRESOURCE, /* copy_resource_info */
DEFERRED_SETRESOURCEMINLOD, /* set_resource_min_lod_info */
DEFERRED_COPYSUBRESOURCEREGION, /* copy_subresource_region_info */
@@ -22,10 +22,11 @@ index c83d6a0..4f3700d 100644
DEFERRED_RESOLVESUBRESOURCE, /* resolve_subresource_info */
DEFERRED_COPYSTRUCTURECOUNT, /* copy_structure_count_info */
@@ -185,6 +186,15 @@ struct deferred_call
@@ -208,6 +209,15 @@ struct deferred_call
D3D11_BOX *src_box;
} copy_subresource_region_info;
struct
{
+ {
+ ID3D11Resource *resource;
+ UINT subresource_idx;
+ D3D11_BOX *box;
@@ -34,11 +35,10 @@ index c83d6a0..4f3700d 100644
+ UINT depth_pitch;
+ } update_subresource_info;
+ struct
+ {
{
ID3D11Resource *dst_resource;
UINT dst_subresource_idx;
ID3D11Resource *src_resource;
@@ -568,6 +578,12 @@ static void free_deferred_calls(struct list *commands)
@@ -592,6 +602,12 @@ static void free_deferred_calls(struct list *commands)
ID3D11Resource_Release(call->copy_subresource_region_info.src_resource);
break;
}
@@ -51,7 +51,7 @@ index c83d6a0..4f3700d 100644
case DEFERRED_RESOLVESUBRESOURCE:
{
if (call->resolve_subresource_info.dst_resource)
@@ -899,6 +915,17 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
@@ -923,6 +939,17 @@ static void exec_deferred_calls(ID3D11DeviceContext1 *iface, struct list *comman
call->copy_structure_count_info.src_view);
break;
}
@@ -69,7 +69,7 @@ index c83d6a0..4f3700d 100644
case DEFERRED_CSSETSHADER:
{
ID3D11DeviceContext1_CSSetShader(iface, call->cs_info.shader, NULL, 0);
@@ -5054,8 +5081,54 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_UpdateSubresource(ID3D11Dev
@@ -5281,8 +5308,54 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_UpdateSubresource(ID3D11Dev
ID3D11Resource *resource, UINT subresource_idx, const D3D11_BOX *box,
const void *data, UINT row_pitch, UINT depth_pitch)
{
@@ -126,11 +126,11 @@ index c83d6a0..4f3700d 100644
static void STDMETHODCALLTYPE d3d11_deferred_context_CopyStructureCount(ID3D11DeviceContext *iface,
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index 28581a1..c2a9933 100644
index b3a46950f4e..fae2cae4398 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -373,6 +373,99 @@ HRESULT CDECL wined3d_resource_unmap(struct wined3d_resource *resource, unsigned
return wined3d_cs_unmap(resource->device->cs, resource, sub_resource_idx);
@@ -338,6 +338,99 @@ HRESULT CDECL wined3d_resource_unmap(struct wined3d_resource *resource, unsigned
return wined3d_device_context_unmap(&resource->device->cs->c, resource, sub_resource_idx);
}
+UINT CDECL wined3d_resource_update_info(struct wined3d_resource *resource, unsigned int sub_resource_idx,
@@ -230,10 +230,10 @@ index 28581a1..c2a9933 100644
{
wined3d_cs_emit_preload_resource(resource->device->cs, resource);
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec
index 58dc0a9..fe6e0af 100644
index 63e7b82abda..9879f394699 100644
--- a/dlls/wined3d/wined3d.spec
+++ b/dlls/wined3d/wined3d.spec
@@ -234,6 +234,7 @@
@@ -235,6 +235,7 @@
@ cdecl wined3d_resource_set_parent(ptr ptr)
@ cdecl wined3d_resource_set_priority(ptr long)
@ cdecl wined3d_resource_unmap(ptr long)
@@ -242,10 +242,10 @@ index 58dc0a9..fe6e0af 100644
@ cdecl wined3d_rendertarget_view_create(ptr ptr ptr ptr ptr)
@ cdecl wined3d_rendertarget_view_create_from_sub_resource(ptr long ptr ptr ptr)
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index fa929e5..0adb891 100644
index 760bb709c2b..7cd6682d494 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -2597,6 +2597,8 @@ void __cdecl wined3d_resource_preload(struct wined3d_resource *resource);
@@ -2762,6 +2762,8 @@ void __cdecl wined3d_resource_preload(struct wined3d_resource *resource);
void __cdecl wined3d_resource_set_parent(struct wined3d_resource *resource, void *parent);
DWORD __cdecl wined3d_resource_set_priority(struct wined3d_resource *resource, DWORD priority);
HRESULT __cdecl wined3d_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx);
@@ -255,5 +255,5 @@ index fa929e5..0adb891 100644
HRESULT __cdecl wined3d_rendertarget_view_create(const struct wined3d_view_desc *desc,
struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops,
--
1.9.1
2.30.2

View File

@@ -1,18 +1,18 @@
From d6805cde0e8f01e672f17fb03af947e7d2f83dde Mon Sep 17 00:00:00 2001
From cf45f6b66c0babf760c2a27ff7aa6842696fb22f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 1 Oct 2017 04:43:22 +0200
Subject: [PATCH] d3d11: Implement restoring of state after executing a command
list.
---
dlls/d3d11/device.c | 233 +++++++++++++++++++++++++++++++++++++++++++++++++++-
dlls/d3d11/device.c | 233 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 229 insertions(+), 4 deletions(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 4f3700d..e214202 100644
index 639727e4af4..c2c63d97351 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -367,6 +367,62 @@ struct deferred_call
@@ -391,6 +391,62 @@ struct deferred_call
};
};
@@ -75,7 +75,7 @@ index 4f3700d..e214202 100644
/* ID3D11CommandList - command list */
struct d3d11_command_list
{
@@ -2513,22 +2569,191 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ResolveSubresource(ID3D11D
@@ -2730,22 +2786,191 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ResolveSubresource(ID3D11D
wined3d_mutex_unlock();
}
@@ -130,7 +130,7 @@ index 4f3700d..e214202 100644
+ ID3D11DeviceContext1_SOGetTargets(context, D3D11_SO_BUFFER_SLOT_COUNT, stateblock->so_buffers);
+ /* For some reason the d3d11 get function is missing the offset parameter */
+ for (i = 0; i < D3D11_SO_BUFFER_SLOT_COUNT; i++)
+ wined3d_device_get_stream_output(device->wined3d_device, i, &stateblock->so_offsets[i]);
+ wined3d_device_context_get_stream_output(device->immediate_context.wined3d_context, i, &stateblock->so_offsets[i]);
+
+ ID3D11DeviceContext1_GetPredication(context, &stateblock->predicate, &stateblock->predicate_value);
+
@@ -272,5 +272,5 @@ index 4f3700d..e214202 100644
}
--
1.9.1
2.30.2

View File

@@ -1,4 +1,4 @@
From 5bfa95c3058d8c869e7555514b05dc877a842e42 Mon Sep 17 00:00:00 2001
From f72b878cf5dcf8f20d485f7b3e75d86e303393e7 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Fri, 8 Jun 2018 22:04:29 -0500
Subject: [PATCH] server: Create eventfd file descriptors for thread objects.
@@ -9,7 +9,7 @@ Subject: [PATCH] server: Create eventfd file descriptors for thread objects.
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/server/thread.c b/server/thread.c
index 8432d0aa8ed..d4b88be3897 100644
index e7795c21136..ef5b3fbf313 100644
--- a/server/thread.c
+++ b/server/thread.c
@@ -186,6 +186,7 @@ struct type_descr thread_type =
@@ -37,8 +37,8 @@ index 8432d0aa8ed..d4b88be3897 100644
thread->system_regs = 0;
thread->queue = NULL;
thread->wait = NULL;
@@ -374,6 +376,9 @@ struct thread *create_thread( int fd, struct process *process, const struct secu
return NULL;
@@ -385,6 +387,9 @@ struct thread *create_thread( int fd, struct process *process, const struct secu
}
}
+ if (do_esync())
@@ -47,7 +47,7 @@ index 8432d0aa8ed..d4b88be3897 100644
set_fd_events( thread->request_fd, POLLIN ); /* start listening to events */
add_process_thread( thread->process, thread );
return thread;
@@ -453,6 +458,9 @@ static void destroy_thread( struct object *obj )
@@ -464,6 +469,9 @@ static void destroy_thread( struct object *obj )
if (thread->exit_poll) remove_timeout_user( thread->exit_poll );
if (thread->id) free_ptid( thread->id );
if (thread->token) release_object( thread->token );
@@ -57,7 +57,7 @@ index 8432d0aa8ed..d4b88be3897 100644
}
/* dump a thread on stdout for debugging purposes */
@@ -471,6 +479,13 @@ static int thread_signaled( struct object *obj, struct wait_queue_entry *entry )
@@ -482,6 +490,13 @@ static int thread_signaled( struct object *obj, struct wait_queue_entry *entry )
return mythread->state == TERMINATED && !mythread->exit_poll;
}
@@ -84,5 +84,5 @@ index 077ab0929ba..99904557d44 100644
struct msg_queue *queue; /* message queue */
struct thread_wait *wait; /* current wait condition if sleeping */
--
2.20.1
2.30.2

View File

@@ -1,146 +0,0 @@
From e1057892b7256a8c48b4abaa1b34fb11b6735973 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 4 Feb 2017 16:20:37 +0100
Subject: [PATCH] kernel32: Implement some processor group functions.
---
...pi-ms-win-core-kernel32-legacy-l1-1-0.spec | 2 +-
...pi-ms-win-core-kernel32-legacy-l1-1-1.spec | 2 +-
dlls/kernel32/kernel32.spec | 2 +-
dlls/kernel32/process.c | 26 ++++++++++++++++---
dlls/kernel32/tests/process.c | 21 +++++++++++++++
5 files changed, 46 insertions(+), 7 deletions(-)
diff --git a/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec b/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec
index e653ac6d212..b6af37ab0aa 100644
--- a/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec
+++ b/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec
@@ -21,7 +21,7 @@
@ stdcall GetComputerNameW(ptr ptr) kernel32.GetComputerNameW
@ stdcall GetConsoleWindow() kernel32.GetConsoleWindow
@ stub GetDurationFormatEx
-@ stub GetMaximumProcessorGroupCount
+@ stdcall GetMaximumProcessorGroupCount() kernel32.GetMaximumProcessorGroupCount
@ stdcall GetNamedPipeClientProcessId(long ptr) kernel32.GetNamedPipeClientProcessId
@ stdcall GetNamedPipeServerProcessId(long ptr) kernel32.GetNamedPipeServerProcessId
@ stdcall GetShortPathNameA(str ptr long) kernel32.GetShortPathNameA
diff --git a/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec b/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec
index 4998af04d9b..5ce8e24713b 100644
--- a/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec
+++ b/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec
@@ -26,7 +26,7 @@
@ stub GetDurationFormatEx
@ stub GetFileAttributesTransactedW
@ stub GetFirmwareType
-@ stub GetMaximumProcessorGroupCount
+@ stdcall GetMaximumProcessorGroupCount() kernel32.GetMaximumProcessorGroupCount
@ stdcall GetNamedPipeClientProcessId(long ptr) kernel32.GetNamedPipeClientProcessId
@ stdcall GetNamedPipeServerProcessId(long ptr) kernel32.GetNamedPipeServerProcessId
@ stdcall GetNumaAvailableMemoryNodeEx(long ptr) kernel32.GetNumaAvailableMemoryNodeEx
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 0312e044a86..06f524a8080 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -719,7 +719,7 @@
@ stdcall -import GetLongPathNameW(wstr ptr long)
@ stdcall GetMailslotInfo(long ptr ptr ptr ptr)
@ stdcall GetMaximumProcessorCount(long)
-# @ stub GetMaximumProcessorGroupCount
+@ stdcall GetMaximumProcessorGroupCount()
@ stdcall -import GetModuleFileNameA(long ptr long)
@ stdcall -import GetModuleFileNameW(long ptr long)
@ stdcall -import GetModuleHandleA(str)
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index 41a5b34af19..dc136365f50 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -609,7 +609,9 @@ HRESULT WINAPI RegisterApplicationRecoveryCallback(APPLICATION_RECOVERY_CALLBACK
*/
WORD WINAPI GetActiveProcessorGroupCount(void)
{
- FIXME("semi-stub, always returning 1\n");
+ TRACE("()\n");
+
+ /* systems with less than 64 logical processors only have group 0 */
return 1;
}
@@ -618,10 +620,14 @@ WORD WINAPI GetActiveProcessorGroupCount(void)
*/
DWORD WINAPI GetActiveProcessorCount(WORD group)
{
- DWORD cpus = system_info.NumberOfProcessors;
+ TRACE("(%u)\n", group);
- FIXME("semi-stub, returning %u\n", cpus);
- return cpus;
+ if (group && group != ALL_PROCESSOR_GROUPS)
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return 0;
+ }
+ return system_info.NumberOfProcessors;
}
/***********************************************************************
@@ -635,6 +641,18 @@ DWORD WINAPI GetMaximumProcessorCount(WORD group)
return cpus;
}
+/***********************************************************************
+ * GetMaximumProcessorGroupCount (KERNEL32.@)
+ */
+WORD WINAPI GetMaximumProcessorGroupCount(void)
+{
+ TRACE("()\n");
+
+ /* systems with less than 64 logical processors only have group 0 */
+ return 1;
+}
+
+
/***********************************************************************
* GetFirmwareEnvironmentVariableA (KERNEL32.@)
*/
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
index 433c12ff1fb..5049265684f 100644
--- a/dlls/kernel32/tests/process.c
+++ b/dlls/kernel32/tests/process.c
@@ -4297,6 +4297,26 @@ static void test_dead_process(void)
CloseHandle(pi.hThread);
}
+static void test_GetActiveProcessorCount(void)
+{
+ DWORD count;
+
+ if (!pGetActiveProcessorCount)
+ {
+ win_skip("GetActiveProcessorCount not available, skipping test\n");
+ return;
+ }
+
+ count = pGetActiveProcessorCount(0);
+ ok(count, "GetActiveProcessorCount failed, error %u\n", GetLastError());
+
+ /* Test would fail on systems with more than 6400 processors */
+ SetLastError(0xdeadbeef);
+ count = pGetActiveProcessorCount(101);
+ ok(count == 0, "Expeced GetActiveProcessorCount to fail\n");
+ ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %u\n", GetLastError());
+}
+
START_TEST(process)
{
HANDLE job, hproc, h, h2;
@@ -4414,6 +4434,7 @@ START_TEST(process)
test_session_info();
test_GetLogicalProcessorInformationEx();
test_GetSystemCpuSetInformation();
+ test_GetActiveProcessorCount();
test_largepages();
test_ProcThreadAttributeList();
test_SuspendProcessState();
--
2.30.2

View File

@@ -1,2 +1 @@
Fixes: Implement some processor group functions and SetThreadIdealProcessorEx
Depends: api-ms-win-Stub_DLLs

View File

@@ -1,4 +1,4 @@
From 27332457e843bbef5d08dd45249956ade1258476 Mon Sep 17 00:00:00 2001
From dd0c922c02e793aba906cfad855c2474a3c2fe3b Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 9 Jul 2019 14:13:28 +1000
Subject: [PATCH] user32: Improve GetKeyboardLayoutList
@@ -55,11 +55,11 @@ index 7ac77141696..56009667b00 100644
if (baselayout != 0)
{
diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c
index ce272ed73f4..9ac14b607cf 100644
index 2397b4104e4..a5c8521c0e9 100644
--- a/dlls/user32/tests/input.c
+++ b/dlls/user32/tests/input.c
@@ -3979,6 +3979,40 @@ static void test_UnregisterDeviceNotification(void)
ok(ret == FALSE, "Unregistering NULL Device Notification returned: %d\n", ret);
@@ -4322,6 +4322,40 @@ static void test_SendInput(void)
DestroyWindow( hwnd );
}
+static void test_GetKeyboardLayoutList(void)
@@ -99,7 +99,7 @@ index ce272ed73f4..9ac14b607cf 100644
START_TEST(input)
{
char **argv;
@@ -4020,6 +4054,7 @@ START_TEST(input)
@@ -4364,6 +4398,7 @@ START_TEST(input)
test_GetRawInputBuffer();
test_RegisterRawInputDevices();
test_rawinput(argv[0]);
@@ -108,5 +108,5 @@ index ce272ed73f4..9ac14b607cf 100644
if(pGetMouseMovePointsEx)
test_GetMouseMovePointsEx(argv[0]);
--
2.28.0
2.30.2

View File

@@ -1,26 +0,0 @@
From fbf25644246c31e0116b319a1876c89697c07bc5 Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Wed, 25 Nov 2020 12:29:50 -0500
Subject: [PATCH] winegstreamer: Set MF_MT_ALL_SAMPLES_INDEPENDENT attribute on
raw video media types.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
---
dlls/winegstreamer/mfplat.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/dlls/winegstreamer/mfplat.c b/dlls/winegstreamer/mfplat.c
index 1b19c43d991..f4a0c5b00f0 100644
--- a/dlls/winegstreamer/mfplat.c
+++ b/dlls/winegstreamer/mfplat.c
@@ -604,6 +604,7 @@ IMFMediaType *mf_media_type_from_caps(const GstCaps *caps)
unsigned int i;
IMFMediaType_SetUINT32(media_type, &MF_MT_COMPRESSED, FALSE);
+ IMFMediaType_SetUINT32(media_type, &MF_MT_ALL_SAMPLES_INDEPENDENT, TRUE);
/* First try FOURCC */
if ((fourcc_subtype.Data1 = gst_video_format_to_fourcc(video_info.finfo->format)))
--
2.29.2

View File

@@ -1,116 +0,0 @@
From caf668bdbcf74b6f00d6d70ae6030007852a082d Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 16 Mar 2015 03:46:36 +0100
Subject: [PATCH] ntdll: Fix return value for missing
ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION key.
---
dlls/kernel32/tests/actctx.c | 36 ++++++++++++++++--------------------
dlls/ntdll/actctx.c | 3 +++
2 files changed, 19 insertions(+), 20 deletions(-)
diff --git a/dlls/kernel32/tests/actctx.c b/dlls/kernel32/tests/actctx.c
index 4b7096276e8..8effbdbc9bc 100644
--- a/dlls/kernel32/tests/actctx.c
+++ b/dlls/kernel32/tests/actctx.c
@@ -2365,7 +2365,7 @@ static HANDLE create_manifest(const char *filename, const char *data, int line)
return handle;
}
-static void kernel32_find(ULONG section, const char *string_to_find, BOOL should_find, BOOL todo, int line)
+static void kernel32_find(ULONG section, const char *string_to_find, BOOL should_find, int line)
{
UNICODE_STRING string_to_findW;
ACTCTX_SECTION_KEYED_DATA data;
@@ -2382,7 +2382,6 @@ static void kernel32_find(ULONG section, const char *string_to_find, BOOL should
err = GetLastError();
ok_(__FILE__, line)(ret == should_find,
"FindActCtxSectionStringA: expected ret = %u, got %u\n", should_find, ret);
- todo_wine_if(todo)
ok_(__FILE__, line)(err == (should_find ? ERROR_SUCCESS : ERROR_SXS_KEY_NOT_FOUND),
"FindActCtxSectionStringA: unexpected error %u\n", err);
@@ -2394,7 +2393,6 @@ static void kernel32_find(ULONG section, const char *string_to_find, BOOL should
err = GetLastError();
ok_(__FILE__, line)(ret == should_find,
"FindActCtxSectionStringW: expected ret = %u, got %u\n", should_find, ret);
- todo_wine_if(todo)
ok_(__FILE__, line)(err == (should_find ? ERROR_SUCCESS : ERROR_SXS_KEY_NOT_FOUND),
"FindActCtxSectionStringW: unexpected error %u\n", err);
@@ -2417,7 +2415,7 @@ static void kernel32_find(ULONG section, const char *string_to_find, BOOL should
pRtlFreeUnicodeString(&string_to_findW);
}
-static void ntdll_find(ULONG section, const char *string_to_find, BOOL should_find, BOOL todo, int line)
+static void ntdll_find(ULONG section, const char *string_to_find, BOOL should_find, int line)
{
UNICODE_STRING string_to_findW;
ACTCTX_SECTION_KEYED_DATA data;
@@ -2429,12 +2427,10 @@ static void ntdll_find(ULONG section, const char *string_to_find, BOOL should_fi
data.cbSize = sizeof(data);
ret = pRtlFindActivationContextSectionString(0, NULL, section, &string_to_findW, &data);
- todo_wine_if(todo)
ok_(__FILE__, line)(ret == (should_find ? STATUS_SUCCESS : STATUS_SXS_KEY_NOT_FOUND),
"RtlFindActivationContextSectionString: unexpected status 0x%x\n", ret);
ret = pRtlFindActivationContextSectionString(0, NULL, section, &string_to_findW, NULL);
- todo_wine_if(todo)
ok_(__FILE__, line)(ret == (should_find ? STATUS_SUCCESS : STATUS_SXS_KEY_NOT_FOUND),
"RtlFindActivationContextSectionString: unexpected status 0x%x\n", ret);
@@ -2452,22 +2448,22 @@ static void test_findsectionstring(void)
ok(ret, "ActivateActCtx failed: %u\n", GetLastError());
/* first we show the parameter validation from kernel32 */
- kernel32_find(ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION, "testdep", FALSE, TRUE, __LINE__);
- kernel32_find(ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, "testlib.dll", TRUE, FALSE, __LINE__);
- kernel32_find(ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, "testlib2.dll", TRUE, FALSE, __LINE__);
- kernel32_find(ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, "testlib3.dll", FALSE, FALSE, __LINE__);
- kernel32_find(ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, "wndClass", TRUE, FALSE, __LINE__);
- kernel32_find(ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, "wndClass2", TRUE, FALSE, __LINE__);
- kernel32_find(ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, "wndClass3", FALSE, FALSE, __LINE__);
+ kernel32_find(ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION, "testdep", FALSE, __LINE__);
+ kernel32_find(ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, "testlib.dll", TRUE, __LINE__);
+ kernel32_find(ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, "testlib2.dll", TRUE, __LINE__);
+ kernel32_find(ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, "testlib3.dll", FALSE, __LINE__);
+ kernel32_find(ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, "wndClass", TRUE, __LINE__);
+ kernel32_find(ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, "wndClass2", TRUE, __LINE__);
+ kernel32_find(ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, "wndClass3", FALSE, __LINE__);
/* then we show that ntdll plays by different rules */
- ntdll_find(ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION, "testdep", FALSE, TRUE, __LINE__);
- ntdll_find(ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, "testlib.dll", TRUE, FALSE, __LINE__);
- ntdll_find(ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, "testlib2.dll", TRUE, FALSE, __LINE__);
- ntdll_find(ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, "testlib3.dll", FALSE, FALSE, __LINE__);
- ntdll_find(ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, "wndClass", TRUE, FALSE, __LINE__);
- ntdll_find(ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, "wndClass2", TRUE, FALSE, __LINE__);
- ntdll_find(ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, "wndClass3", FALSE, FALSE, __LINE__);
+ ntdll_find(ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION, "testdep", FALSE, __LINE__);
+ ntdll_find(ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, "testlib.dll", TRUE, __LINE__);
+ ntdll_find(ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, "testlib2.dll", TRUE, __LINE__);
+ ntdll_find(ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, "testlib3.dll", FALSE, __LINE__);
+ ntdll_find(ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, "wndClass", TRUE, __LINE__);
+ ntdll_find(ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, "wndClass2", TRUE, __LINE__);
+ ntdll_find(ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, "wndClass3", FALSE, __LINE__);
ret = DeactivateActCtx(0, cookie);
ok(ret, "DeactivateActCtx failed: %u\n", GetLastError());
diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c
index 59e9671f9a8..c50d1a42fcf 100644
--- a/dlls/ntdll/actctx.c
+++ b/dlls/ntdll/actctx.c
@@ -4842,6 +4842,9 @@ static NTSTATUS find_string(ACTIVATION_CONTEXT* actctx, ULONG section_kind,
switch (section_kind)
{
+ case ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION:
+ FIXME("Unsupported yet section_kind %x\n", section_kind);
+ return STATUS_SXS_KEY_NOT_FOUND;
case ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION:
status = find_dll_redirection(actctx, section_name, data);
break;
--
2.17.1

View File

@@ -1,4 +1,4 @@
From e1c9210a92b5b3fda4767f3a9ba12eff5427314f Mon Sep 17 00:00:00 2001
From dd8ab6d50d5a84d8b40fd8541184c4cc462e7bd0 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 5 Aug 2017 03:38:38 +0200
Subject: [PATCH] ntdll: Add inline versions of RtlEnterCriticalSection /
@@ -9,7 +9,7 @@ Subject: [PATCH] ntdll: Add inline versions of RtlEnterCriticalSection /
1 file changed, 34 insertions(+)
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
index e50d48dc3cc..13a9123eb06 100644
index 1e00dcda2ec..631876c9862 100644
--- a/dlls/ntdll/ntdll_misc.h
+++ b/dlls/ntdll/ntdll_misc.h
@@ -26,6 +26,7 @@
@@ -57,9 +57,9 @@ index e50d48dc3cc..13a9123eb06 100644
+ }
+}
+
/* load order */
#ifdef _WIN64
struct dllredirect_data
{
ULONG size;
--
2.30.2

View File

@@ -1,15 +1,15 @@
From 7e55aac8ffe313d8e313b222d1bc670b51987441 Mon Sep 17 00:00:00 2001
From 02050df2d792e003c28a302d23e7a464573c113c Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Wed, 20 Aug 2014 15:28:00 -0600
Subject: [PATCH] ntdll: Implement storing DOS attributes in NtCreateFile.
---
dlls/ntdll/tests/directory.c | 24 +++++++--------
dlls/ntdll/unix/file.c | 59 ++++++++++++++++++++++++++++++------
2 files changed, 61 insertions(+), 22 deletions(-)
dlls/ntdll/tests/directory.c | 24 ++++++++---------
dlls/ntdll/unix/file.c | 51 ++++++++++++++++++++++++++++++++----
2 files changed, 57 insertions(+), 18 deletions(-)
diff --git a/dlls/ntdll/tests/directory.c b/dlls/ntdll/tests/directory.c
index d21a2e64f8e..dc4f09729ac 100644
index 6a423174664..fccd48f23e5 100644
--- a/dlls/ntdll/tests/directory.c
+++ b/dlls/ntdll/tests/directory.c
@@ -55,7 +55,6 @@ static NTSTATUS (WINAPI *pRtlWow64EnableFsRedirectionEx)( ULONG disable, ULONG *
@@ -58,10 +58,10 @@ index d21a2e64f8e..dc4f09729ac 100644
}
testfiles[i].nfound++;
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index 0c3ff240c67..57175c7f3e4 100644
index b2494d0343a..ad39732fd29 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -409,6 +409,26 @@ static int xattr_get( const char *path, const char *name, void *value, size_t si
@@ -407,6 +407,26 @@ static int xattr_get( const char *path, const char *name, void *value, size_t si
#endif
}
@@ -88,7 +88,7 @@ index 0c3ff240c67..57175c7f3e4 100644
/* get space from the current directory data buffer, allocating a new one if necessary */
static void *get_dir_data_space( struct dir_data *data, unsigned int size )
{
@@ -3664,6 +3684,20 @@ static NTSTATUS unmount_device( HANDLE handle )
@@ -3760,6 +3780,20 @@ static NTSTATUS unmount_device( HANDLE handle )
return status;
}
@@ -109,42 +109,27 @@ index 0c3ff240c67..57175c7f3e4 100644
/******************************************************************************
* open_unix_file
@@ -3706,6 +3740,7 @@ NTSTATUS WINAPI NtCreateFile( HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBU
ULONG attributes, ULONG sharing, ULONG disposition,
ULONG options, void *ea_buffer, ULONG ea_length )
{
+ OBJECT_ATTRIBUTES nt_attr;
UNICODE_STRING nt_name = { 0 };
char *unix_name;
BOOL created = FALSE;
@@ -3749,17 +3784,17 @@ NTSTATUS WINAPI NtCreateFile( HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBU
@@ -3854,13 +3888,14 @@ NTSTATUS WINAPI NtCreateFile( HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBU
io->u.Status = STATUS_SUCCESS;
}
- if (io->u.Status == STATUS_SUCCESS)
+ if (io->u.Status != STATUS_SUCCESS)
{
- OBJECT_ATTRIBUTES nt_attr = *attr;
-
- if (nt_name.Buffer) nt_attr.ObjectName = &nt_name;
- io->u.Status = open_unix_file( handle, unix_name, access, &nt_attr, attributes,
- io->u.Status = open_unix_file( handle, unix_name, access, &new_attr, attributes,
- sharing, disposition, options, ea_buffer, ea_length );
- free( nt_name.Buffer );
- free( unix_name );
+ WARN( "%s not found (%x)\n", debugstr_us(attr->ObjectName), io->u.Status );
+ return io->u.Status;
}
- else WARN( "%s not found (%x)\n", debugstr_us(attr->ObjectName), io->u.Status );
+
+ nt_attr = *attr;
+ if (nt_name.Buffer) nt_attr.ObjectName = &nt_name;
+ io->u.Status = open_unix_file( handle, unix_name, access, &nt_attr, attributes,
+ io->u.Status = open_unix_file( handle, unix_name, access, &new_attr, attributes,
+ sharing, disposition, options, ea_buffer, ea_length );
+ free( nt_name.Buffer );
if (io->u.Status == STATUS_SUCCESS)
{
@@ -3781,6 +3816,11 @@ NTSTATUS WINAPI NtCreateFile( HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBU
@@ -3882,6 +3917,11 @@ NTSTATUS WINAPI NtCreateFile( HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBU
io->Information = FILE_OVERWRITTEN;
break;
}
@@ -156,14 +141,14 @@ index 0c3ff240c67..57175c7f3e4 100644
}
else if (io->u.Status == STATUS_TOO_MANY_OPENED_FILES)
{
@@ -3788,6 +3828,7 @@ NTSTATUS WINAPI NtCreateFile( HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBU
if (!once++) ERR_(winediag)( "Too many open files, ulimit -n probably needs to be increased\n" );
@@ -3890,6 +3930,7 @@ NTSTATUS WINAPI NtCreateFile( HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBU
}
free( nt_name.Buffer );
+ free( unix_name );
return io->u.Status;
}
--
2.20.1
2.30.2

View File

@@ -1,4 +1,4 @@
From 3f308239ced2e9fa2ac0b298eeb1ad5dde330840 Mon Sep 17 00:00:00 2001
From a2e3bc27382f9c0c4894c6e0ab121f075e82db3e Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Wed, 20 Aug 2014 11:26:48 -0600
Subject: [PATCH] ntdll: Perform the Unix-style hidden file check within the
@@ -9,10 +9,10 @@ Subject: [PATCH] ntdll: Perform the Unix-style hidden file check within the
1 file changed, 9 insertions(+), 14 deletions(-)
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index 7c737edd22c..c6b4928bd53 100644
index 73d4cce90ae..b790cde3f90 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -1213,15 +1213,15 @@ static BOOLEAN get_dir_case_sensitivity( const char *dir )
@@ -1328,15 +1328,15 @@ static BOOLEAN get_dir_case_sensitivity( const char *dir )
*
* Check if the specified file should be hidden based on its name and the show dot files option.
*/
@@ -20,20 +20,20 @@ index 7c737edd22c..c6b4928bd53 100644
+static BOOL is_hidden_file( const char *name )
{
- WCHAR *p, *end;
+ char *p, *end;
+ const char *p, *end;
if (show_dot_files) return FALSE;
- end = p = name->Buffer + name->Length/sizeof(WCHAR);
- while (p > name->Buffer && IS_SEPARATOR(p[-1])) p--;
- while (p > name->Buffer && !IS_SEPARATOR(p[-1])) p--;
+ end = p = (char *)name + strlen(name);
+ while (p > name && IS_SEPARATOR(p[-1])) p--;
+ while (p > name && !IS_SEPARATOR(p[-1])) p--;
if (p == end || *p != '.') return FALSE;
/* make sure it isn't '.' or '..' */
if (p + 1 == end) return FALSE;
@@ -1567,6 +1567,10 @@ static int get_file_info( const char *path, struct stat *st, ULONG *attr )
- while (p > name->Buffer && p[-1] == '\\') p--;
- while (p > name->Buffer && p[-1] != '\\') p--;
+ end = p = name + strlen( name );
+ while (p > name && p[-1] == '\\') p--;
+ while (p > name && p[-1] != '\\') p--;
return (p < end && *p == '.');
}
@@ -1679,6 +1679,10 @@ static int get_file_info( const char *path, struct stat *st, ULONG *attr )
free( parent_path );
}
*attr |= get_file_attributes( st );
@@ -44,7 +44,7 @@ index 7c737edd22c..c6b4928bd53 100644
len = xattr_get( path, SAMBA_XATTR_DOS_ATTRIB, hexattr, sizeof(hexattr)-1 );
if (len == -1) return ret;
*attr |= get_file_xattr( hexattr, len );
@@ -2077,11 +2081,6 @@ static NTSTATUS get_dir_data_entry( struct dir_data *dir_data, void *info_ptr, I
@@ -2186,11 +2190,6 @@ static NTSTATUS get_dir_data_entry( struct dir_data *dir_data, void *info_ptr, I
if (class != FileNamesInformation)
{
if (st.st_dev != dir_data->id.dev) st.st_ino = 0; /* ignore inode if on a different device */
@@ -56,7 +56,7 @@ index 7c737edd22c..c6b4928bd53 100644
fill_file_info( &st, attributes, info, class );
}
@@ -3838,7 +3837,6 @@ NTSTATUS WINAPI NtQueryFullAttributesFile( const OBJECT_ATTRIBUTES *attr,
@@ -4106,7 +4105,6 @@ NTSTATUS WINAPI NtQueryFullAttributesFile( const OBJECT_ATTRIBUTES *attr,
info->AllocationSize = std.AllocationSize;
info->EndOfFile = std.EndOfFile;
info->FileAttributes = basic.FileAttributes;
@@ -64,7 +64,7 @@ index 7c737edd22c..c6b4928bd53 100644
}
free( unix_name );
}
@@ -3865,10 +3863,7 @@ NTSTATUS WINAPI NtQueryAttributesFile( const OBJECT_ATTRIBUTES *attr, FILE_BASIC
@@ -4133,10 +4131,7 @@ NTSTATUS WINAPI NtQueryAttributesFile( const OBJECT_ATTRIBUTES *attr, FILE_BASIC
else if (!S_ISREG(st.st_mode) && !S_ISDIR(st.st_mode))
status = STATUS_INVALID_INFO_CLASS;
else
@@ -76,5 +76,5 @@ index 7c737edd22c..c6b4928bd53 100644
}
else WARN( "%s not found (%x)\n", debugstr_us(attr->ObjectName), status );
--
2.27.0
2.30.2

View File

@@ -1,4 +1,4 @@
From fdbd1834e06f2476c2798613e45f764e5eba8f9d Mon Sep 17 00:00:00 2001
From 42675b2cbb3460a5c9fe57f6804d1f144fe27529 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Wed, 1 May 2019 17:48:51 -0600
Subject: [PATCH] ntdll: Find dangling symlinks quickly.
@@ -8,40 +8,31 @@ case-insensitive lookups of files.
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
---
dlls/ntdll/unix/file.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
dlls/ntdll/unix/file.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index f77e64ee6b4..0de80ebee7b 100644
index 9654f31cf30..f5e968c369e 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -2715,7 +2715,7 @@ static NTSTATUS find_file_in_dir( char *unix_name, int pos, const WCHAR *name, i
@@ -2709,7 +2709,7 @@ static NTSTATUS find_file_in_dir( char *unix_name, int pos, const WCHAR *name, i
if (ret >= 0 && ret <= MAX_DIR_ENTRY_LEN)
{
unix_name[pos + ret] = 0;
- if (!stat( unix_name, &st )) return STATUS_SUCCESS;
+ if (!lstat( unix_name, &st )) return STATUS_SUCCESS;
}
if (check_case) goto not_found; /* we want an exact match */
@@ -3373,7 +3373,7 @@ static NTSTATUS lookup_unix_name( const WCHAR *name, int name_len, char **buffer
char *p;
unix_name[pos + 1 + ret] = 0;
for (p = unix_name + pos ; *p; p++) if (*p == '\\') *p = '/';
- if (!stat( unix_name, &st ))
+ if (!lstat( unix_name, &st ))
{
if (is_win_dir) *is_win_dir = is_same_file( &windir, &st );
if (disposition == FILE_CREATE) return STATUS_OBJECT_NAME_COLLISION;
return STATUS_SUCCESS;
@@ -2819,7 +2819,7 @@ not_found:
return STATUS_OBJECT_PATH_NOT_FOUND;
success:
- if (is_win_dir && !stat( unix_name, &st )) *is_win_dir = is_same_file( &windir, &st );
+ if (is_win_dir && !lstat( unix_name, &st )) *is_win_dir = is_same_file( &windir, &st );
return STATUS_SUCCESS;
}
@@ -3359,7 +3359,7 @@ static NTSTATUS lookup_unix_name( const WCHAR *name, int name_len, char **buffer
for (p = unix_name + pos ; *p; p++) if (*p == '\\') *p = '/';
if (!name_len || !redirect || (!strstr( unix_name, "/windows/") && strncmp( unix_name, "windows/", 8 )))
{
- if (!stat( unix_name, &st ))
+ if (!lstat( unix_name, &st ))
{
if (disposition == FILE_CREATE)
return STATUS_OBJECT_NAME_COLLISION;
--
2.20.1
2.30.2

View File

@@ -1,18 +1,18 @@
From efd074f0e742ac8199b091860b2d4bc36136ca1c Mon Sep 17 00:00:00 2001
From 4507201faf3a7993d4e8f214c5de081f4656ad5e Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@wine-staging.com>
Date: Sat, 6 Feb 2021 16:15:46 -0700
Subject: [PATCH] ntdll: Strip the wine prefix from reparse point paths
external to the prefix.
---
dlls/ntdll/unix/file.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
dlls/ntdll/unix/file.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index b6e49590f62..25b542cb4fc 100644
index b17b53146b3..614f37fb3d6 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -5913,6 +5913,31 @@ static void ignore_server_ioctl_struct_holes( ULONG code, const void *in_buffer,
@@ -6051,6 +6051,33 @@ static void ignore_server_ioctl_struct_holes( ULONG code, const void *in_buffer,
}
@@ -23,13 +23,15 @@ index b6e49590f62..25b542cb4fc 100644
+
+ if (unix_root == NULL)
+ {
+ OBJECT_ATTRIBUTES attr;
+ UNICODE_STRING nameW;
+ WCHAR *nt_name;
+
+ if (unix_to_nt_file_name( "/", &nt_name ) != STATUS_SUCCESS) return;
+ nameW.Buffer = nt_name;
+ nameW.Length = wcslen(nt_name) * sizeof(WCHAR);
+ nt_to_unix_file_name( &nameW, &unix_root, NULL, FILE_OPEN );
+ InitializeObjectAttributes( &attr, &nameW, OBJ_CASE_INSENSITIVE, 0, NULL );
+ nt_to_unix_file_name( &attr, &unix_root, FILE_OPEN );
+ free( nt_name );
+ if (unix_root == NULL) return;
+ unix_root_len = strlen(unix_root);
@@ -44,7 +46,7 @@ index b6e49590f62..25b542cb4fc 100644
/*
* Retrieve the unix name corresponding to a file handle, remove that directory, and then symlink
* the requested directory to the location of the old directory.
@@ -6045,6 +6070,8 @@ NTSTATUS FILE_CreateSymlink(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
@@ -6183,6 +6210,8 @@ NTSTATUS FILE_CreateSymlink(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
goto cleanup;
}
}
@@ -54,5 +56,5 @@ index b6e49590f62..25b542cb4fc 100644
TRACE( "Linking %s to %s\n", unix_src, &unix_dest[relative_offset] );
--
2.20.1
2.30.2

View File

@@ -1,4 +1,4 @@
From 6147ac6f68fe96fd53d52b11e16dafbec37b128d Mon Sep 17 00:00:00 2001
From f3656ad722d12021db19a015a57fa9d2b9e72622 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 26 May 2017 05:17:17 +0200
Subject: [PATCH] ntdll: Implement opening files through nt device paths.
@@ -63,10 +63,10 @@ index 839046a7488..8756c18c9e8 100644
static void open_file_test(void)
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index 5ab24e2c334..5ad856dbebf 100644
index d3750109a79..6250ada9570 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -3282,8 +3282,8 @@ static NTSTATUS nt_to_unix_file_name_attr( const OBJECT_ATTRIBUTES *attr, char *
@@ -3297,8 +3297,8 @@ static NTSTATUS nt_to_unix_file_name_attr( const OBJECT_ATTRIBUTES *attr, char *
* element doesn't have to exist; in that case STATUS_NO_SUCH_FILE is
* returned, but the unix name is still filled in properly.
*/
@@ -77,7 +77,7 @@ index 5ab24e2c334..5ad856dbebf 100644
{
static const WCHAR unixW[] = {'u','n','i','x'};
static const WCHAR pipeW[] = {'p','i','p','e'};
@@ -3421,6 +3421,126 @@ NTSTATUS CDECL wine_nt_to_unix_file_name( const UNICODE_STRING *nameW, char *nam
@@ -3436,6 +3436,126 @@ NTSTATUS CDECL wine_nt_to_unix_file_name( const UNICODE_STRING *nameW, char *nam
return status;
}
@@ -203,7 +203,7 @@ index 5ab24e2c334..5ad856dbebf 100644
+}
/******************************************************************
* unix_to_nt_file_name
* collapse_path
--
2.20.1
2.30.2

View File

@@ -1,3 +1,4 @@
Fixes: [37487] Resolve \\SystemRoot\\ prefix when opening files
Fixes: Implement opening files through nt device paths
Depends: ntdll-Pipe_SpecialCharacters
# Temporarily disabled until the upstream code stops being thrashed.
Disabled: true

View File

@@ -1,84 +0,0 @@
From 24d4c486c981d7e7542a37b2916cb147f3467c92 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 27 Jul 2014 03:35:42 +0200
Subject: [PATCH] ntdll: Allow special characters in pipe names.
Based on patch by Valentyn Pavliuchenko.
---
dlls/kernel32/tests/pipe.c | 10 ++++++++++
dlls/ntdll/unix/file.c | 14 ++++++++++----
2 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/dlls/kernel32/tests/pipe.c b/dlls/kernel32/tests/pipe.c
index 91f6df34f81..8437264ae43 100644
--- a/dlls/kernel32/tests/pipe.c
+++ b/dlls/kernel32/tests/pipe.c
@@ -30,6 +30,7 @@
#include "wine/test.h"
#define PIPENAME "\\\\.\\PiPe\\tests_pipe.c"
+#define PIPENAME_SPECIAL "\\\\.\\PiPe\\tests->pipe.c"
#define NB_SERVER_LOOPS 8
@@ -673,6 +674,15 @@ static void test_CreateNamedPipe(int pipemode)
CloseHandle(hnp);
+ hnp = CreateNamedPipeA(PIPENAME_SPECIAL, PIPE_ACCESS_DUPLEX, pipemode | PIPE_WAIT,
+ /* nMaxInstances */ 1,
+ /* nOutBufSize */ 1024,
+ /* nInBufSize */ 1024,
+ /* nDefaultWait */ NMPWAIT_USE_DEFAULT_WAIT,
+ /* lpSecurityAttrib */ NULL);
+ ok(hnp != INVALID_HANDLE_VALUE, "CreateNamedPipe with special characters failed\n");
+ ok(CloseHandle(hnp), "CloseHandle\n");
+
if (winetest_debug > 1) trace("test_CreateNamedPipe returning\n");
}
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index 6337433ed80..5ab24e2c334 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -3286,6 +3286,7 @@ NTSTATUS nt_to_unix_file_name( const UNICODE_STRING *nameW, char **unix_name_ret
UNICODE_STRING *nt_name, UINT disposition )
{
static const WCHAR unixW[] = {'u','n','i','x'};
+ static const WCHAR pipeW[] = {'p','i','p','e'};
static const WCHAR invalid_charsW[] = { INVALID_NT_CHARS, 0 };
NTSTATUS status = STATUS_SUCCESS;
@@ -3296,6 +3297,7 @@ NTSTATUS nt_to_unix_file_name( const UNICODE_STRING *nameW, char **unix_name_ret
WCHAR prefix[MAX_DIR_ENTRY_LEN + 1];
BOOLEAN check_case = FALSE;
BOOLEAN is_unix = FALSE;
+ BOOLEAN is_pipe = FALSE;
name = nameW->Buffer;
name_len = nameW->Length / sizeof(WCHAR);
@@ -3329,13 +3331,17 @@ NTSTATUS nt_to_unix_file_name( const UNICODE_STRING *nameW, char **unix_name_ret
name += prefix_len;
name_len -= prefix_len;
- /* check for invalid characters (all chars except 0 are valid for unix) */
- is_unix = (prefix_len == 4 && !memcmp( prefix, unixW, sizeof(unixW) ));
- if (is_unix)
+ /* check for invalid characters (all chars except 0 are valid for unix and pipes) */
+ if (prefix_len == 4)
+ {
+ is_unix = !memcmp( prefix, unixW, sizeof(unixW) );
+ is_pipe = !memcmp( prefix, pipeW, sizeof(pipeW) );
+ }
+ if (is_unix || is_pipe)
{
for (p = name; p < name + name_len; p++)
if (!*p) return STATUS_OBJECT_NAME_INVALID;
- check_case = TRUE;
+ check_case |= is_unix;
}
else
{
--
2.20.1

View File

@@ -1 +0,0 @@
Fixes: [28995] Allow special characters in pipe names

View File

@@ -51,13 +51,13 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "a24bdfc2c69c5648cbb3df762149b2647e209a09"
echo "c0af8b73725d2670c9b018a255c503dee6912cf5"
}
# Show version information
version()
{
echo "Wine Staging 6.6"
echo "Wine Staging 6.7"
echo "Copyright (C) 2014-2019 the Wine Staging project authors."
echo "Copyright (C) 2018-2020 Alistair Leslie-Hughes"
echo ""
@@ -148,7 +148,6 @@ patch_enable_all ()
enable_msvcrt_Math_Precision="$1"
enable_msxml3_FreeThreadedXMLHTTP60="$1"
enable_ntdll_APC_Performance="$1"
enable_ntdll_Activation_Context="$1"
enable_ntdll_ApiSetMap="$1"
enable_ntdll_Builtin_Prot="$1"
enable_ntdll_CriticalSection="$1"
@@ -164,11 +163,9 @@ patch_enable_all ()
enable_ntdll_Junction_Points="$1"
enable_ntdll_Manifest_Range="$1"
enable_ntdll_NtAlertThreadByThreadId="$1"
enable_ntdll_NtDevicePath="$1"
enable_ntdll_NtQueryEaFile="$1"
enable_ntdll_NtQuerySection="$1"
enable_ntdll_NtSetLdtEntries="$1"
enable_ntdll_Pipe_SpecialCharacters="$1"
enable_ntdll_ProcessQuotaLimits="$1"
enable_ntdll_RtlFirstFreeAce="$1"
enable_ntdll_RtlQueryPackageIdentity="$1"
@@ -196,6 +193,7 @@ patch_enable_all ()
enable_quartz_MediaSeeking_Positions="$1"
enable_riched20_Class_Tests="$1"
enable_riched20_IText_Interface="$1"
enable_secur32_InitializeSecurityContextW="$1"
enable_server_FileEndOfFileInformation="$1"
enable_server_File_Permissions="$1"
enable_server_Key_State="$1"
@@ -252,10 +250,8 @@ patch_enable_all ()
enable_wine_inf_Directory_ContextMenuHandlers="$1"
enable_wine_inf_Dummy_CA_Certificate="$1"
enable_wine_inf_Performance="$1"
enable_wineboot_DriveSerial="$1"
enable_wineboot_HKEY_DYN_DATA="$1"
enable_wineboot_ProxySettings="$1"
enable_wineboot_drivers_etc_Stubs="$1"
enable_winecfg_Libraries="$1"
enable_winecfg_Staging="$1"
enable_wined3d_Accounting="$1"
@@ -297,7 +293,6 @@ patch_enable_all ()
enable_ws2_32_getsockopt="$1"
enable_wtsapi32_EnumerateProcesses="$1"
enable_xactengine_initial="$1"
enable_xactengine2_dll="$1"
enable_xactengine3_7_Notification="$1"
enable_xactengine3_7_PrepareWave="$1"
}
@@ -504,9 +499,6 @@ patch_enable ()
ntdll-APC_Performance)
enable_ntdll_APC_Performance="$2"
;;
ntdll-Activation_Context)
enable_ntdll_Activation_Context="$2"
;;
ntdll-ApiSetMap)
enable_ntdll_ApiSetMap="$2"
;;
@@ -552,9 +544,6 @@ patch_enable ()
ntdll-NtAlertThreadByThreadId)
enable_ntdll_NtAlertThreadByThreadId="$2"
;;
ntdll-NtDevicePath)
enable_ntdll_NtDevicePath="$2"
;;
ntdll-NtQueryEaFile)
enable_ntdll_NtQueryEaFile="$2"
;;
@@ -564,9 +553,6 @@ patch_enable ()
ntdll-NtSetLdtEntries)
enable_ntdll_NtSetLdtEntries="$2"
;;
ntdll-Pipe_SpecialCharacters)
enable_ntdll_Pipe_SpecialCharacters="$2"
;;
ntdll-ProcessQuotaLimits)
enable_ntdll_ProcessQuotaLimits="$2"
;;
@@ -648,6 +634,9 @@ patch_enable ()
riched20-IText_Interface)
enable_riched20_IText_Interface="$2"
;;
secur32-InitializeSecurityContextW)
enable_secur32_InitializeSecurityContextW="$2"
;;
server-FileEndOfFileInformation)
enable_server_FileEndOfFileInformation="$2"
;;
@@ -816,18 +805,12 @@ patch_enable ()
wine.inf-Performance)
enable_wine_inf_Performance="$2"
;;
wineboot-DriveSerial)
enable_wineboot_DriveSerial="$2"
;;
wineboot-HKEY_DYN_DATA)
enable_wineboot_HKEY_DYN_DATA="$2"
;;
wineboot-ProxySettings)
enable_wineboot_ProxySettings="$2"
;;
wineboot-drivers_etc_Stubs)
enable_wineboot_drivers_etc_Stubs="$2"
;;
winecfg-Libraries)
enable_winecfg_Libraries="$2"
;;
@@ -951,9 +934,6 @@ patch_enable ()
xactengine-initial)
enable_xactengine_initial="$2"
;;
xactengine2-dll)
enable_xactengine2_dll="$2"
;;
xactengine3_7-Notification)
enable_xactengine3_7_Notification="$2"
;;
@@ -1321,17 +1301,6 @@ if test "$enable_wined3d_Indexed_Vertex_Blending" -eq 1; then
enable_wined3d_SWVP_shaders=1
fi
if test "$enable_wineboot_ProxySettings" -eq 1; then
if test "$enable_wineboot_DriveSerial" -gt 1; then
abort "Patchset wineboot-DriveSerial disabled, but wineboot-ProxySettings depends on that."
fi
if test "$enable_wineboot_drivers_etc_Stubs" -gt 1; then
abort "Patchset wineboot-drivers_etc_Stubs disabled, but wineboot-ProxySettings depends on that."
fi
enable_wineboot_DriveSerial=1
enable_wineboot_drivers_etc_Stubs=1
fi
if test "$enable_user32_rawinput_mouse_experimental" -eq 1; then
if test "$enable_user32_rawinput_mouse" -gt 1; then
abort "Patchset user32-rawinput-mouse disabled, but user32-rawinput-mouse-experimental depends on that."
@@ -1417,13 +1386,6 @@ if test "$enable_nvcuvid_CUDA_Video_Support" -eq 1; then
enable_nvapi_Stub_DLL=1
fi
if test "$enable_ntdll_NtDevicePath" -eq 1; then
if test "$enable_ntdll_Pipe_SpecialCharacters" -gt 1; then
abort "Patchset ntdll-Pipe_SpecialCharacters disabled, but ntdll-NtDevicePath depends on that."
fi
enable_ntdll_Pipe_SpecialCharacters=1
fi
if test "$enable_ntdll_Builtin_Prot" -eq 1; then
if test "$enable_ntdll_WRITECOPY" -gt 1; then
abort "Patchset ntdll-WRITECOPY disabled, but ntdll-Builtin_Prot depends on that."
@@ -1438,13 +1400,6 @@ if test "$enable_ntdll_WRITECOPY" -eq 1; then
enable_ntdll_ForceBottomUpAlloc=1
fi
if test "$enable_kernel32_Processor_Group" -eq 1; then
if test "$enable_api_ms_win_Stub_DLLs" -gt 1; then
abort "Patchset api-ms-win-Stub_DLLs disabled, but kernel32-Processor_Group depends on that."
fi
enable_api_ms_win_Stub_DLLs=1
fi
if test "$enable_kernel32_CopyFileEx" -eq 1; then
if test "$enable_ntdll_FileDispositionInformation" -gt 1; then
abort "Patchset ntdll-FileDispositionInformation disabled, but kernel32-CopyFileEx depends on that."
@@ -2649,16 +2604,10 @@ fi
# Patchset kernel32-Processor_Group
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * api-ms-win-Stub_DLLs
# |
# | Modified files:
# | * dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec, dlls/api-ms-win-core-
# | kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec, dlls/kernel32/kernel32.spec,
# | dlls/kernel32/process.c, dlls/kernel32/tests/process.c, dlls/kernelbase/thread.c
# | * dlls/kernelbase/thread.c
# |
if test "$enable_kernel32_Processor_Group" -eq 1; then
patch_apply kernel32-Processor_Group/0001-kernel32-Implement-some-processor-group-functions.patch
patch_apply kernel32-Processor_Group/0002-kernel32-Add-stub-for-SetThreadIdealProcessorEx.patch
fi
@@ -2826,15 +2775,6 @@ if test "$enable_ntdll_APC_Performance" -eq 1; then
patch_apply ntdll-APC_Performance/0001-ntdll-Reuse-old-async-fileio-structures-if-possible.patch
fi
# Patchset ntdll-Activation_Context
# |
# | Modified files:
# | * dlls/kernel32/tests/actctx.c, dlls/ntdll/actctx.c
# |
if test "$enable_ntdll_Activation_Context" -eq 1; then
patch_apply ntdll-Activation_Context/0001-ntdll-Fix-return-value-for-missing-ACTIVATION_CONTEX.patch
fi
# Patchset ntdll-ApiSetMap
# |
# | This patchset fixes the following Wine bugs:
@@ -3018,33 +2958,6 @@ if test "$enable_ntdll_NtAlertThreadByThreadId" -eq 1; then
patch_apply ntdll-NtAlertThreadByThreadId/0013-ntdll-Reimplement-SRW-locks-on-top-of-Win32-futexes.patch
fi
# Patchset ntdll-Pipe_SpecialCharacters
# |
# | This patchset fixes the following Wine bugs:
# | * [#28995] Allow special characters in pipe names
# |
# | Modified files:
# | * dlls/kernel32/tests/pipe.c, dlls/ntdll/unix/file.c
# |
if test "$enable_ntdll_Pipe_SpecialCharacters" -eq 1; then
patch_apply ntdll-Pipe_SpecialCharacters/0001-ntdll-Allow-special-characters-in-pipe-names.patch
fi
# Patchset ntdll-NtDevicePath
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * ntdll-Pipe_SpecialCharacters
# |
# | This patchset fixes the following Wine bugs:
# | * [#37487] Resolve \\SystemRoot\\ prefix when opening files
# |
# | Modified files:
# | * dlls/ntdll/tests/file.c, dlls/ntdll/unix/file.c
# |
if test "$enable_ntdll_NtDevicePath" -eq 1; then
patch_apply ntdll-NtDevicePath/0001-ntdll-Implement-opening-files-through-nt-device-path.patch
fi
# Patchset ntdll-NtQuerySection
# |
# | Modified files:
@@ -3338,6 +3251,18 @@ if test "$enable_riched20_IText_Interface" -eq 1; then
patch_apply riched20-IText_Interface/0010-riched20-Silence-repeated-FIXMEs-triggered-by-Adobe-.patch
fi
# Patchset secur32-InitializeSecurityContextW
# |
# | This patchset fixes the following Wine bugs:
# | * [#51049] Create a new Context when the input object is NULL.
# |
# | Modified files:
# | * dlls/secur32/schannel.c, dlls/secur32/tests/schannel.c
# |
if test "$enable_secur32_InitializeSecurityContextW" -eq 1; then
patch_apply secur32-InitializeSecurityContextW/0001-secur32-Input-Parameter-should-be-NULL-on-first-call.patch
fi
# Patchset server-FileEndOfFileInformation
# |
# | Modified files:
@@ -3353,11 +3278,8 @@ fi
# | This patchset has the following (direct or indirect) dependencies:
# | * ntdll-DOS_Attributes, ntdll-NtQueryEaFile, ntdll-Junction_Points
# |
# | This patchset fixes the following Wine bugs:
# | * [#44691] Improve mapping of DACL to file permissions
# |
# | Modified files:
# | * dlls/advapi32/tests/security.c, dlls/ntdll/tests/file.c, server/fd.c, server/file.c
# | * dlls/advapi32/tests/security.c, dlls/ntdll/tests/file.c, server/fd.c
# |
if test "$enable_server_File_Permissions" -eq 1; then
patch_apply server-File_Permissions/0001-server-Improve-STATUS_CANNOT_DELETE-checks-for-direc.patch
@@ -3367,7 +3289,6 @@ if test "$enable_server_File_Permissions" -eq 1; then
patch_apply server-File_Permissions/0005-advapi32-tests-Add-ACL-inheritance-tests-for-creatin.patch
patch_apply server-File_Permissions/0006-ntdll-tests-Added-tests-for-open-behaviour-on-readon.patch
patch_apply server-File_Permissions/0007-server-FILE_WRITE_ATTRIBUTES-should-succeed-for-read.patch
patch_apply server-File_Permissions/0008-server-Improve-mapping-of-DACL-to-file-permissions.patch
fi
# Patchset server-Stored_ACLs
@@ -3906,18 +3827,11 @@ fi
# | * [#50506] WM_INPUT messages are not received for HID devices registered with RegisterRawInputDevices
# |
# | Modified files:
# | * dlls/hidclass.sys/Makefile.in, dlls/hidclass.sys/device.c, dlls/hidclass.sys/hid.h, dlls/hidclass.sys/pnp.c,
# | dlls/ntoskrnl.exe/ntoskrnl.exe.spec, dlls/ntoskrnl.exe/pnp.c, dlls/user32/input.c, dlls/user32/message.c,
# | dlls/user32/rawinput.c, dlls/user32/tests/input.c, dlls/user32/user32.spec, dlls/user32/user_private.h,
# | dlls/wineandroid.drv/keyboard.c, dlls/wineandroid.drv/window.c, dlls/winemac.drv/ime.c, dlls/winemac.drv/keyboard.c,
# | dlls/winemac.drv/mouse.c, dlls/winex11.drv/keyboard.c, dlls/winex11.drv/mouse.c, include/ddk/wdm.h, include/winuser.h,
# | server/protocol.def, server/queue.c, server/trace.c
# | * dlls/hidclass.sys/Makefile.in, dlls/hidclass.sys/device.c, dlls/hidclass.sys/pnp.c, dlls/ntoskrnl.exe/ntoskrnl.exe.spec,
# | dlls/ntoskrnl.exe/pnp.c, dlls/user32/message.c, dlls/user32/rawinput.c, include/ddk/wdm.h, server/protocol.def,
# | server/queue.c, server/trace.c
# |
if test "$enable_user32_rawinput_hid" -eq 1; then
patch_apply user32-rawinput-hid/0001-user32-tests-Add-more-SendInput-tests.patch
patch_apply user32-rawinput-hid/0002-user32-Implement-SendInput-INPUT_HARDWARE-check.patch
patch_apply user32-rawinput-hid/0003-user32-Add-RAWINPUT-parameter-to-__wine_send_input.patch
patch_apply user32-rawinput-hid/0004-hidclass.sys-Assign-rawinput-device-handle-in-HID_Li.patch
patch_apply user32-rawinput-hid/0005-hidclass.sys-Use-__wine_send_input-to-send-device-no.patch
patch_apply user32-rawinput-hid/0006-server-Implement-desktop-broadcast-in-queue_rawinput.patch
patch_apply user32-rawinput-hid/0007-server-Add-rawinput-union-to-hw_input_t-INPUT_HARDWA.patch
@@ -4070,18 +3984,6 @@ if test "$enable_wine_inf_Performance" -eq 1; then
patch_apply wine.inf-Performance/0003-advapi32-tests-Add-test-for-perflib-registry-key.patch
fi
# Patchset wineboot-DriveSerial
# |
# | This patchset fixes the following Wine bugs:
# | * [#17823] Assign a drive serial number during prefix creation/update
# |
# | Modified files:
# | * programs/wineboot/wineboot.c
# |
if test "$enable_wineboot_DriveSerial" -eq 1; then
patch_apply wineboot-DriveSerial/0001-wineboot-Assign-a-drive-serial-number-during-prefix-.patch
fi
# Patchset wineboot-HKEY_DYN_DATA
# |
# | This patchset fixes the following Wine bugs:
@@ -4094,23 +3996,8 @@ if test "$enable_wineboot_HKEY_DYN_DATA" -eq 1; then
patch_apply wineboot-HKEY_DYN_DATA/0001-wineboot-Add-some-generic-hardware-in-HKEY_DYN_DATA-.patch
fi
# Patchset wineboot-drivers_etc_Stubs
# |
# | This patchset fixes the following Wine bugs:
# | * [#12076] Create stub files for system32/drivers/etc/{services,hosts,networks,protocol}
# |
# | Modified files:
# | * programs/wineboot/wineboot.c
# |
if test "$enable_wineboot_drivers_etc_Stubs" -eq 1; then
patch_apply wineboot-drivers_etc_Stubs/0001-wineboot-Init-system32-drivers-etc-host-networks-pro.patch
fi
# Patchset wineboot-ProxySettings
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * wineboot-DriveSerial, wineboot-drivers_etc_Stubs
# |
# | This patchset fixes the following Wine bugs:
# | * [#42024] Create ProxyEnable key on wineprefix update
# |
@@ -4602,50 +4489,6 @@ if test "$enable_xactengine_initial" -eq 1; then
patch_apply xactengine-initial/0003-xactengine3_7-tests-Add-Global-settings-test.patch
fi
# Patchset xactengine2-dll
# |
# | This patchset fixes the following Wine bugs:
# | * [#41048] xactengine2_0: Roller Coaster Rampage
# | * [#49671] xactengine2_4: Supreme Commander demo
# | * [#49668] xactengine2_7: Two Worlds Epic Edition
# | * [#41468] xactengine2_9: Supreme Commander Forged Alliance
# |
# | Modified files:
# | * configure, configure.ac, dlls/xactengine2_0/Makefile.in, dlls/xactengine2_0/xactengine2_0.spec,
# | dlls/xactengine2_1/Makefile.in, dlls/xactengine2_1/xactengine2_1.spec, dlls/xactengine2_10/Makefile.in,
# | dlls/xactengine2_10/xact2_classes.idl, dlls/xactengine2_10/xact2_dll.c, dlls/xactengine2_10/xactengine2_10.spec,
# | dlls/xactengine2_2/Makefile.in, dlls/xactengine2_2/xactengine2_2.spec, dlls/xactengine2_3/Makefile.in,
# | dlls/xactengine2_3/xactengine2_3.spec, dlls/xactengine2_4/Makefile.in, dlls/xactengine2_4/xactengine2_4.spec,
# | dlls/xactengine2_5/Makefile.in, dlls/xactengine2_5/xactengine2_5.spec, dlls/xactengine2_6/Makefile.in,
# | dlls/xactengine2_6/xactengine2_6.spec, dlls/xactengine2_7/Makefile.in, dlls/xactengine2_7/xactengine2_7.spec,
# | dlls/xactengine2_8/Makefile.in, dlls/xactengine2_8/xactengine2_8.spec, dlls/xactengine2_9/Makefile.in,
# | dlls/xactengine2_9/xactengine2_9.spec, include/Makefile.in, include/xact.h, include/xact2wb.h
# |
if test "$enable_xactengine2_dll" -eq 1; then
patch_apply xactengine2-dll/0001-include-Add-xact2wb.h.patch
patch_apply xactengine2-dll/0002-include-Add-xact.h.patch
patch_apply xactengine2-dll/0003-xactengine2_10-Add-new-dll.patch
patch_apply xactengine2-dll/0004-xactengine2_10-Implement-IXACTEngine-interface.patch
patch_apply xactengine2-dll/0005-xactengine2_10-Implement-IXACTSoundBank-interface.patch
patch_apply xactengine2-dll/0006-xactengine2_10-Implement-IXACTCue-Interface.patch
patch_apply xactengine2-dll/0007-xactengine2_10-Implement-IXACTWaveBank-interface.patch
patch_apply xactengine2-dll/0008-xactengine2_10-Implement-IXACTEngine-CreateStreaming.patch
patch_apply xactengine2-dll/0009-xactengine2_10-Implement-IXACTWave-interface.patch
patch_apply xactengine2-dll/0010-xactengine2_10-Implement-IXACTSoundBank-Play-functio.patch
patch_apply xactengine2-dll/0011-xactengine2_10-Implement-IXACTWaveBank-Play-function.patch
patch_apply xactengine2-dll/0012-xactengine2_10-Implement-IXACTEngine-Un-RegisterNoti.patch
patch_apply xactengine2-dll/0013-xactengine2_9-New-Dll.patch
patch_apply xactengine2-dll/0014-xactengine2_8-New-Dll.patch
patch_apply xactengine2-dll/0015-xactengine2_7-New-Dll.patch
patch_apply xactengine2-dll/0016-xactengine2_6-New-Dll.patch
patch_apply xactengine2-dll/0017-xactengine2_5-New-Dll.patch
patch_apply xactengine2-dll/0018-xactengine2_4-New-Dll.patch
patch_apply xactengine2-dll/0019-xactengine2_3-New-Dll.patch
patch_apply xactengine2-dll/0020-xactengine2_2-New-Dll.patch
patch_apply xactengine2-dll/0021-xactengine2_1-New-Dll.patch
patch_apply xactengine2-dll/0022-xactengine2_0-New-Dll.patch
fi
# Patchset xactengine3_7-Notification
# |
# | This patchset fixes the following Wine bugs:

View File

@@ -0,0 +1,61 @@
From 06b162060280cca8e06cb3b55849f19a9cd110a9 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 21 Apr 2021 21:06:55 +1000
Subject: [PATCH] secur32: Input Parameter should be NULL on first call to
InitializeSecurityContextW.
This fixes a crash in "Sea of Thieves".
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/secur32/schannel.c | 2 +-
dlls/secur32/tests/schannel.c | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/secur32/schannel.c b/dlls/secur32/schannel.c
index 1dd3a029401..f7926ac1e33 100644
--- a/dlls/secur32/schannel.c
+++ b/dlls/secur32/schannel.c
@@ -819,7 +819,7 @@ static SECURITY_STATUS SEC_ENTRY schan_InitializeSecurityContextW(
dump_buffer_desc(pInput);
dump_buffer_desc(pOutput);
- if (!phContext)
+ if (!phContext || (phNewContext && !pInput))
{
ULONG_PTR handle;
diff --git a/dlls/secur32/tests/schannel.c b/dlls/secur32/tests/schannel.c
index aeb38096f0c..c0bda7ebed8 100644
--- a/dlls/secur32/tests/schannel.c
+++ b/dlls/secur32/tests/schannel.c
@@ -1317,7 +1317,7 @@ todo_wine
status = InitializeSecurityContextA(&cred_handle, &context, (SEC_CHAR *)"localhost",
ISC_REQ_CONFIDENTIALITY|ISC_REQ_STREAM,
0, 0, NULL, 0, &context, &buffers[0], &attrs, NULL);
- todo_wine ok(status == SEC_I_CONTINUE_NEEDED, "Expected SEC_I_CONTINUE_NEEDED, got %08x\n", status);
+ ok(status == SEC_I_CONTINUE_NEEDED, "Expected SEC_I_CONTINUE_NEEDED, got %08x\n", status);
if (status != SEC_I_CONTINUE_NEEDED)
{
skip("skipping remaining renegotiate test\n");
@@ -1355,7 +1355,7 @@ todo_wine
ISC_REQ_USE_SUPPLIED_CREDS, 0, 0, &buffers[1], 0, NULL, &buffers[0], &attrs, NULL);
buffers[1].pBuffers[0].cbBuffer = buf_size;
}
- ok (status == SEC_E_OK, "got %08x\n", status);
+ todo_wine ok (status == SEC_E_OK, "got %08x\n", status);
buf = &buffers[0].pBuffers[0];
buf->cbBuffer = buf_size;
@@ -1365,7 +1365,7 @@ todo_wine
buffers[0].pBuffers[0].BufferType = SECBUFFER_DATA;
buffers[0].pBuffers[1].BufferType = SECBUFFER_EMPTY;
status = DecryptMessage(&context, &buffers[0], 0, NULL);
- ok(status == SEC_E_OK, "DecryptMessage failed: %08x\n", status);
+ todo_wine ok(status == SEC_E_OK, "DecryptMessage failed: %08x\n", status);
if (status == SEC_E_OK)
{
ok(buffers[0].pBuffers[0].BufferType == SECBUFFER_STREAM_HEADER, "Expected first buffer to be SECBUFFER_STREAM_HEADER\n");
--
2.30.2

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