mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Added patch to keep reference on mapping for shared PE mappings.
This commit is contained in:
parent
431c546ca5
commit
2d16aafa9a
@ -356,6 +356,7 @@ patch_enable_all ()
|
||||
enable_server_free_async_queue="$1"
|
||||
enable_server_open_mapping_file="$1"
|
||||
enable_server_send_hardware_message="$1"
|
||||
enable_server_shared_mapping="$1"
|
||||
enable_setupapi_DiskSpaceList="$1"
|
||||
enable_setupapi_Display_Device="$1"
|
||||
enable_setupapi_HSPFILEQ_Check_Type="$1"
|
||||
@ -1353,6 +1354,9 @@ patch_enable ()
|
||||
server-send_hardware_message)
|
||||
enable_server_send_hardware_message="$2"
|
||||
;;
|
||||
server-shared_mapping)
|
||||
enable_server_shared_mapping="$2"
|
||||
;;
|
||||
setupapi-DiskSpaceList)
|
||||
enable_setupapi_DiskSpaceList="$2"
|
||||
;;
|
||||
@ -8039,6 +8043,21 @@ if test "$enable_server_send_hardware_message" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset server-shared_mapping
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#43829] Keep reference on mapping for shared PE mappings
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * server/mapping.c
|
||||
# |
|
||||
if test "$enable_server_shared_mapping" -eq 1; then
|
||||
patch_apply server-shared_mapping/0001-server-Keep-reference-on-mapping-for-shared-mappings.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "server: Keep reference on mapping for shared mappings.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset setupapi-DiskSpaceList
|
||||
# |
|
||||
# | Modified files:
|
||||
|
@ -0,0 +1,40 @@
|
||||
From 11ed96d6ecfa031fba1cbc80b4e9113bcad6173f Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Wed, 4 Oct 2017 03:20:48 +0200
|
||||
Subject: server: Keep reference on mapping for shared mappings.
|
||||
|
||||
---
|
||||
server/mapping.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/server/mapping.c b/server/mapping.c
|
||||
index 5db03f8861a..0a39df69c7a 100644
|
||||
--- a/server/mapping.c
|
||||
+++ b/server/mapping.c
|
||||
@@ -110,6 +110,7 @@ static const struct object_ops ranges_ops =
|
||||
struct memory_view
|
||||
{
|
||||
struct list entry; /* entry in per-process view list */
|
||||
+ struct mapping *mapping; /* for shared PE mappings */
|
||||
struct fd *fd; /* fd for mapped file */
|
||||
struct ranges *committed; /* list of committed ranges in this mapping */
|
||||
unsigned int flags; /* SEC_* flags */
|
||||
@@ -336,6 +337,7 @@ static struct memory_view *find_mapped_view( struct process *process, client_ptr
|
||||
|
||||
static void free_memory_view( struct memory_view *view )
|
||||
{
|
||||
+ if (view->mapping) release_object( view->mapping );
|
||||
if (view->fd) release_object( view->fd );
|
||||
if (view->committed) release_object( view->committed );
|
||||
list_remove( &view->entry );
|
||||
@@ -989,6 +991,7 @@ DECL_HANDLER(map_view)
|
||||
view->size = req->size;
|
||||
view->start = req->start;
|
||||
view->flags = mapping->flags;
|
||||
+ view->mapping = mapping->shared_file ? (struct mapping *)grab_object( mapping ) : NULL;
|
||||
view->fd = !is_fd_removable( mapping->fd ) ? (struct fd *)grab_object( mapping->fd ) : NULL;
|
||||
view->committed = mapping->committed ? (struct ranges *)grab_object( mapping->committed ) : NULL;
|
||||
list_add_tail( ¤t->process->views, &view->entry );
|
||||
--
|
||||
2.14.1
|
||||
|
1
patches/server-shared_mapping/definition
Normal file
1
patches/server-shared_mapping/definition
Normal file
@ -0,0 +1 @@
|
||||
Fixes: [43829] Keep reference on mapping for shared PE mappings
|
Loading…
Reference in New Issue
Block a user