[PATCH] user32: do not call NULL message callback
Fabian Bieler
der.fabe at gmx.net
Sat Feb 24 10:19:18 CST 2007
Windows silently ignores NULL pointers supplied to SendMessageCallback as
callback function.
This patch fixes bug 4791.
-------------- next part --------------
From 8a307eb834b7ebe0fcb763123107c2086c8c2c4c Mon Sep 17 00:00:00 2001
From: Fabian Bieler <der.fabe at gmx.net>
Date: Sat, 24 Feb 2007 17:08:32 +0100
Subject: [PATCH] user32: do not call NULL message callback
---
dlls/user32/message.c | 21 ++++++++++++---------
1 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/dlls/user32/message.c b/dlls/user32/message.c
index 22b922d..a592acd 100644
--- a/dlls/user32/message.c
+++ b/dlls/user32/message.c
@@ -1905,15 +1905,18 @@ static BOOL process_hardware_message( MSG *msg, UINT hw_id, ULONG_PTR extra_info
static inline void call_sendmsg_callback( SENDASYNCPROC callback, HWND hwnd, UINT msg,
ULONG_PTR data, LRESULT result )
{
- if (TRACE_ON(relay))
- DPRINTF( "%04x:Call message callback %p (hwnd=%p,msg=%s,data=%08lx,result=%08lx)\n",
- GetCurrentThreadId(), callback, hwnd, SPY_GetMsgName( msg, hwnd ),
- data, result );
- callback( hwnd, msg, data, result );
- if (TRACE_ON(relay))
- DPRINTF( "%04x:Ret message callback %p (hwnd=%p,msg=%s,data=%08lx,result=%08lx)\n",
- GetCurrentThreadId(), callback, hwnd, SPY_GetMsgName( msg, hwnd ),
- data, result );
+ if(callback)
+ {
+ if (TRACE_ON(relay))
+ DPRINTF( "%04x:Call message callback %p (hwnd=%p,msg=%s,data=%08lx,result=%08lx)\n",
+ GetCurrentThreadId(), callback, hwnd, SPY_GetMsgName( msg, hwnd ),
+ data, result );
+ callback( hwnd, msg, data, result );
+ if (TRACE_ON(relay))
+ DPRINTF( "%04x:Ret message callback %p (hwnd=%p,msg=%s,data=%08lx,result=%08lx)\n",
+ GetCurrentThreadId(), callback, hwnd, SPY_GetMsgName( msg, hwnd ),
+ data, result );
+ }
}
--
1.4.4.1
More information about the wine-patches
mailing list