mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 04:06:12 +00:00
[WIN32K:NTUSER]
- Don't forget to ProbeForWrite in NtUserProcessConnect - Use SEH in NtUserSetInformationThread:UserThreadCsrApiPort svn path=/trunk/; revision=65827
This commit is contained in:
parent
8783434e42
commit
fdc61d524b
1 changed files with 19 additions and 1 deletions
|
@ -754,6 +754,7 @@ NtUserProcessConnect(
|
|||
{
|
||||
// FIXME: Check that pUserConnect->ulVersion == USER_VERSION;
|
||||
|
||||
ProbeForWrite(pUserConnect, sizeof(*pUserConnect), sizeof(PVOID));
|
||||
pUserConnect->siClient.psi = gpsi;
|
||||
pUserConnect->siClient.aheList = gHandleTable;
|
||||
pUserConnect->siClient.ulSharedDelta =
|
||||
|
@ -916,6 +917,7 @@ NtUserSetInformationThread(IN HANDLE ThreadHandle,
|
|||
{
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
PETHREAD Thread;
|
||||
HANDLE CsrPortHandle;
|
||||
|
||||
/* Allow only CSRSS to perform this operation */
|
||||
if (PsGetCurrentProcess() != gpepCSRSS)
|
||||
|
@ -959,7 +961,23 @@ NtUserSetInformationThread(IN HANDLE ThreadHandle,
|
|||
Status = STATUS_INFO_LENGTH_MISMATCH;
|
||||
break;
|
||||
}
|
||||
Status = InitCsrApiPort(*(PHANDLE)ThreadInformation);
|
||||
|
||||
Status = STATUS_SUCCESS;
|
||||
_SEH2_TRY
|
||||
{
|
||||
ProbeForRead(ThreadInformation, sizeof(HANDLE), sizeof(PVOID));
|
||||
CsrPortHandle = *(PHANDLE)ThreadInformation;
|
||||
}
|
||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
Status = _SEH2_GetExceptionCode();
|
||||
}
|
||||
_SEH2_END;
|
||||
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
Status = InitCsrApiPort(CsrPortHandle);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue