mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Added patch to avoid crash when async_terminate destroys async object in free_async_queue.
This commit is contained in:
parent
c0a61524e1
commit
77a90f1dd0
@ -339,6 +339,7 @@ patch_enable_all ()
|
||||
enable_server_Stored_ACLs="$1"
|
||||
enable_server_Timestamp_Compat="$1"
|
||||
enable_server_device_manager_destroy="$1"
|
||||
enable_server_free_async_queue="$1"
|
||||
enable_server_send_hardware_message="$1"
|
||||
enable_setupapi_DelReg="$1"
|
||||
enable_setupapi_DiskSpaceList="$1"
|
||||
@ -1282,6 +1283,9 @@ patch_enable ()
|
||||
server-device_manager_destroy)
|
||||
enable_server_device_manager_destroy="$2"
|
||||
;;
|
||||
server-free_async_queue)
|
||||
enable_server_free_async_queue="$2"
|
||||
;;
|
||||
server-send_hardware_message)
|
||||
enable_server_send_hardware_message="$2"
|
||||
;;
|
||||
@ -7563,6 +7567,18 @@ if test "$enable_server_device_manager_destroy" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset server-free_async_queue
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * server/async.c
|
||||
# |
|
||||
if test "$enable_server_free_async_queue" -eq 1; then
|
||||
patch_apply server-free_async_queue/0001-server-Avoid-crash-when-async_terminate-destroys-asy.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "server: Avoid crash when async_terminate destroys async object in free_async_queue.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset server-send_hardware_message
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
|
@ -0,0 +1,30 @@
|
||||
From 6844c121a7cd8a7f90afc0c033cf1c3519fd8d9a Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Fri, 28 Jul 2017 02:41:27 +0200
|
||||
Subject: server: Avoid crash when async_terminate destroys async object in
|
||||
free_async_queue.
|
||||
|
||||
---
|
||||
server/async.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/server/async.c b/server/async.c
|
||||
index 926c121f6f9..9e91f9eadf3 100644
|
||||
--- a/server/async.c
|
||||
+++ b/server/async.c
|
||||
@@ -194,10 +194,12 @@ void free_async_queue( struct async_queue *queue )
|
||||
|
||||
LIST_FOR_EACH_ENTRY_SAFE( async, next, &queue->queue, struct async, queue_entry )
|
||||
{
|
||||
+ grab_object( &async->obj );
|
||||
if (!async->completion) async->completion = fd_get_completion( async->fd, &async->comp_key );
|
||||
async->fd = NULL;
|
||||
async_terminate( async, STATUS_HANDLES_CLOSED );
|
||||
async->queue = NULL;
|
||||
+ release_object( &async->obj );
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.13.1
|
||||
|
1
patches/server-free_async_queue/definition
Normal file
1
patches/server-free_async_queue/definition
Normal file
@ -0,0 +1 @@
|
||||
Fixes: Avoid crash when async_terminate destroys async object in free_async_queue
|
Loading…
x
Reference in New Issue
Block a user