mirror of
https://github.com/reactos/reactos.git
synced 2025-07-31 14:31:50 +00:00
NtSetSystemInformation: - Don't leak the copied string when being called from user mode. - Don't recursively call ZwSetSystemInformation, instead continue the normal path.
svn path=/trunk/; revision=39985
This commit is contained in:
parent
53899ff4fa
commit
36277461a1
1 changed files with 6 additions and 10 deletions
|
@ -1587,18 +1587,10 @@ SSI_DEF(SystemExtendServiceTableInformation)
|
|||
/* FIXME: We can't, fail */
|
||||
//return STATUS_PRIVILEGE_NOT_HELD;
|
||||
}
|
||||
|
||||
/* Probe and capture the driver name */
|
||||
ProbeAndCaptureUnicodeString(&ImageName, UserMode, Buffer);
|
||||
|
||||
/* Force kernel as previous mode */
|
||||
return ZwSetSystemInformation(SystemExtendServiceTableInformation,
|
||||
&ImageName,
|
||||
sizeof(ImageName));
|
||||
}
|
||||
|
||||
/* Just copy the string */
|
||||
ImageName = *(PUNICODE_STRING)Buffer;
|
||||
/* Probe and capture the driver name */
|
||||
ProbeAndCaptureUnicodeString(&ImageName, PreviousMode, Buffer);
|
||||
|
||||
/* Load the image */
|
||||
Status = MmLoadSystemImage(&ImageName,
|
||||
|
@ -1607,6 +1599,10 @@ SSI_DEF(SystemExtendServiceTableInformation)
|
|||
0,
|
||||
(PVOID)&ModuleObject,
|
||||
&ImageBase);
|
||||
|
||||
/* Release String */
|
||||
ReleaseCapturedUnicodeString(&ImageName, PreviousMode);
|
||||
|
||||
if (!NT_SUCCESS(Status)) return Status;
|
||||
|
||||
/* Get the headers */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue