mirror of
https://github.com/reactos/reactos.git
synced 2024-10-06 01:13:38 +00:00
[win32k]
- In FNID_SENDMESSAGECALLBACK use SEH before accesing the user-mode buffer svn path=/trunk/; revision=49962
This commit is contained in:
parent
3e169e3cb2
commit
a38b059ca1
|
@ -2175,14 +2175,23 @@ NtUserMessageCall( HWND hWnd,
|
||||||
break;
|
break;
|
||||||
case FNID_SENDMESSAGECALLBACK:
|
case FNID_SENDMESSAGECALLBACK:
|
||||||
{
|
{
|
||||||
PCALL_BACK_INFO CallBackInfo = (PCALL_BACK_INFO)ResultInfo;
|
CALL_BACK_INFO CallBackInfo;
|
||||||
ULONG_PTR uResult;
|
ULONG_PTR uResult;
|
||||||
|
|
||||||
if (!CallBackInfo)
|
_SEH2_TRY
|
||||||
break;
|
{
|
||||||
|
ProbeForRead((PVOID)ResultInfo, sizeof(CALL_BACK_INFO), 1);
|
||||||
|
RtlCopyMemory(&CallBackInfo, (PVOID)ResultInfo, sizeof(CALL_BACK_INFO));
|
||||||
|
}
|
||||||
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||||
|
{
|
||||||
|
Ret = FALSE;
|
||||||
|
_SEH2_YIELD(break);
|
||||||
|
}
|
||||||
|
_SEH2_END;
|
||||||
|
|
||||||
if (!co_IntSendMessageWithCallBack(hWnd, Msg, wParam, lParam,
|
if (!co_IntSendMessageWithCallBack(hWnd, Msg, wParam, lParam,
|
||||||
CallBackInfo->CallBack, CallBackInfo->Context, &uResult))
|
CallBackInfo.CallBack, CallBackInfo.Context, &uResult))
|
||||||
{
|
{
|
||||||
DPRINT1("Callback failure!\n");
|
DPRINT1("Callback failure!\n");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue