You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
20 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
deed76f394 | ||
|
20e795b107 | ||
|
ac30cf5d62 | ||
|
99759f003a | ||
|
7eb07f1d50 | ||
|
68f87944cf | ||
|
0c8991562d | ||
|
27fae2dc15 | ||
|
39f66ddd9f | ||
|
33d85bda8a | ||
|
ba9a7a6a74 | ||
|
85fbfed5eb | ||
|
20303a53ec | ||
|
30c9d5a0f8 | ||
|
425f75f839 | ||
|
d805441f46 | ||
|
2211b6664e | ||
|
a886228fbc | ||
|
e353590528 | ||
|
b582d2d018 |
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -1,2 +1 @@
|
||||
Fixes: Implement some processor group functions and SetThreadIdealProcessorEx
|
||||
Depends: api-ms-win-Stub_DLLs
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [28995] Allow special characters in pipe names
|
@@ -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:
|
||||
|
@@ -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
Reference in New Issue
Block a user