Alexandre Julliard : server: Grab the current pointer to avoid referencing it after it could become invalid .
Alexandre Julliard
julliard at winehq.org
Mon May 23 13:25:00 CDT 2011
Module: wine
Branch: master
Commit: be23f5a7a6f8a657cc4ee2927e1b138118a858e5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=be23f5a7a6f8a657cc4ee2927e1b138118a858e5
Author: Alexandre Julliard <julliard at winehq.org>
Date: Mon May 23 19:51:00 2011 +0200
server: Grab the current pointer to avoid referencing it after it could become invalid.
---
server/debugger.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/server/debugger.c b/server/debugger.c
index d8a390e..35cb3e3 100644
--- a/server/debugger.c
+++ b/server/debugger.c
@@ -632,6 +632,7 @@ DECL_HANDLER(queue_exception_event)
{
debug_event_t data;
struct debug_event *event;
+ struct thread *thread = current;
if ((req->len % sizeof(client_ptr_t)) != 0 ||
req->len > get_req_data_size() ||
@@ -649,19 +650,19 @@ DECL_HANDLER(queue_exception_event)
data.exception.nb_params = req->len / sizeof(client_ptr_t);
memcpy( data.exception.params, get_req_data(), req->len );
- if ((event = alloc_debug_event( current, EXCEPTION_DEBUG_EVENT, &data )))
+ if ((event = alloc_debug_event( thread, EXCEPTION_DEBUG_EVENT, &data )))
{
const context_t *context = (const context_t *)((const char *)get_req_data() + req->len);
data_size_t size = get_req_data_size() - req->len;
memset( &event->context, 0, sizeof(event->context) );
memcpy( &event->context, context, min( sizeof(event->context), size ) );
- current->context = &event->context;
+ thread->context = &event->context;
- if ((reply->handle = alloc_handle( current->process, event, SYNCHRONIZE, 0 )))
+ if ((reply->handle = alloc_handle( thread->process, event, SYNCHRONIZE, 0 )))
{
link_event( event );
- suspend_process( current->process );
+ suspend_process( thread->process );
}
release_object( event );
}
More information about the wine-cvs
mailing list