Sebastian Lackner : server: Grab borrowed debugger reference while handling wake_up() events. ( Valgrind).

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jun 23 12:57:40 CDT 2014


Module: wine
Branch: master
Commit: 3447567b42fc5ea7ccf80876ad68ca4afb49e291
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=3447567b42fc5ea7ccf80876ad68ca4afb49e291

Author: Sebastian Lackner <sebastian at fds-team.de>
Date:   Sat Jun 21 22:56:22 2014 +0200

server: Grab borrowed debugger reference while handling wake_up() events. (Valgrind).

---

 server/debugger.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/server/debugger.c b/server/debugger.c
index 3315f6e..3ccec29 100644
--- a/server/debugger.c
+++ b/server/debugger.c
@@ -241,7 +241,13 @@ static void link_event( struct debug_event *event )
     assert( debug_ctx );
     grab_object( event );
     list_add_tail( &debug_ctx->event_queue, &event->entry );
-    if (!event->sender->debug_event) wake_up( &debug_ctx->obj, 0 );
+    if (!event->sender->debug_event)
+    {
+        /* grab reference since debugger could be killed while trying to wake up */
+        grab_object( debug_ctx );
+        wake_up( &debug_ctx->obj, 0 );
+        release_object( debug_ctx );
+    }
 }
 
 /* find the next event that we can send to the debugger */




More information about the wine-cvs mailing list