From d01ba95cbd60039aa5093de12c05707c5bb33b03 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Sun, 30 Jul 2017 10:58:32 +0000 Subject: [PATCH] [0.4.12] [WIN32SS] Mask WndProc exceptions to hide all tickets linked to CORE-11915 e.g. this allows using MsDepends Unfortunately still necessary, luckily still effective like in last release cherry picked from commit bca25b10b4cd5603daa3863a0d9fd1762e82bfb1 --- win32ss/user/user32/windows/message.c | 28 ++++----------------------- 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/win32ss/user/user32/windows/message.c b/win32ss/user/user32/windows/message.c index a96b799456c..2e3d5870dfa 100644 --- a/win32ss/user/user32/windows/message.c +++ b/win32ss/user/user32/windows/message.c @@ -1486,20 +1486,15 @@ IntCallWindowProcW(BOOL IsAnsiProc, if (PreResult) goto Exit; - if (!Dialog) - Result = CALL_EXTERN_WNDPROC(WndProc, AnsiMsg.hwnd, AnsiMsg.message, AnsiMsg.wParam, AnsiMsg.lParam); - else - { _SEH2_TRY { Result = CALL_EXTERN_WNDPROC(WndProc, AnsiMsg.hwnd, AnsiMsg.message, AnsiMsg.wParam, AnsiMsg.lParam); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { - ERR("Exception Dialog Ansi %p Msg %d pti %p Wndpti %p\n",WndProc,Msg,GetW32ThreadInfo(),pWnd->head.pti); + ERR("Exception when calling Ansi WndProc %p Msg %d pti %p Wndpti %p\n",WndProc,Msg,GetW32ThreadInfo(),pWnd->head.pti); } _SEH2_END; - } if (Hook && (MsgOverride || DlgOverride)) { @@ -1542,20 +1537,15 @@ IntCallWindowProcW(BOOL IsAnsiProc, if (PreResult) goto Exit; - if (!Dialog) - Result = CALL_EXTERN_WNDPROC(WndProc, hWnd, Msg, wParam, lParam); - else - { _SEH2_TRY { Result = CALL_EXTERN_WNDPROC(WndProc, hWnd, Msg, wParam, lParam); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { - ERR("Exception Dialog unicode %p Msg %d pti %p Wndpti %p\n",WndProc, Msg,GetW32ThreadInfo(),pWnd->head.pti); + ERR("Exception when calling unicode WndProc %p Msg %d pti %p Wndpti %p\n",WndProc, Msg,GetW32ThreadInfo(),pWnd->head.pti); } _SEH2_END; - } if (Hook && (MsgOverride || DlgOverride)) { @@ -1636,20 +1626,15 @@ IntCallWindowProcA(BOOL IsAnsiProc, if (PreResult) goto Exit; - if (!Dialog) - Result = CALL_EXTERN_WNDPROC(WndProc, hWnd, Msg, wParam, lParam); - else - { _SEH2_TRY { Result = CALL_EXTERN_WNDPROC(WndProc, hWnd, Msg, wParam, lParam); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { - ERR("Exception Dialog Ansi %p Msg %d pti %p Wndpti %p\n",WndProc,Msg,GetW32ThreadInfo(),pWnd->head.pti); + ERR("Exception when calling Ansi WndProc %p Msg %d pti %p Wndpti %p\n",WndProc,Msg,GetW32ThreadInfo(),pWnd->head.pti); } _SEH2_END; - } if (Hook && (MsgOverride || DlgOverride)) { @@ -1699,20 +1684,15 @@ IntCallWindowProcA(BOOL IsAnsiProc, if (PreResult) goto Exit; - if (!Dialog) - Result = CALL_EXTERN_WNDPROC(WndProc, UnicodeMsg.hwnd, UnicodeMsg.message, UnicodeMsg.wParam, UnicodeMsg.lParam); - else - { _SEH2_TRY { Result = CALL_EXTERN_WNDPROC(WndProc, UnicodeMsg.hwnd, UnicodeMsg.message, UnicodeMsg.wParam, UnicodeMsg.lParam); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { - ERR("Exception Dialog unicode %p Msg %d pti %p Wndpti %p\n",WndProc, Msg,GetW32ThreadInfo(),pWnd->head.pti); + ERR("Exception when calling unicode WndProc %p Msg %d pti %p Wndpti %p\n",WndProc, Msg,GetW32ThreadInfo(),pWnd->head.pti); } _SEH2_END; - } if (Hook && (MsgOverride || DlgOverride)) {