[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