mirror of
https://github.com/reactos/reactos.git
synced 2026-05-30 23:33:24 +08:00
[NTOS:IO] Don't call IopCompleteRequest with uninitialized context values. CID 716761
NormalContext and NormalRoutine are just for good measure, but SystemArgument2 is actually used by the function. And yes, this appears to be a bug in Win 2003.
This commit is contained in:
@@ -148,6 +148,8 @@ IopPerformSynchronousRequest(IN PDEVICE_OBJECT DeviceObject,
|
||||
if (Status != STATUS_PENDING)
|
||||
{
|
||||
/* Complete it ourselves */
|
||||
NormalRoutine = NULL;
|
||||
NormalContext = NULL;
|
||||
ASSERT(!Irp->PendingReturned);
|
||||
KeRaiseIrql(APC_LEVEL, &OldIrql);
|
||||
IopCompleteRequest(&Irp->Tail.Apc,
|
||||
@@ -2640,6 +2642,8 @@ NtQueryInformationFile(IN HANDLE FileHandle,
|
||||
Irp->UserIosb = IoStatusBlock;
|
||||
|
||||
/* The IRP wasn't completed, complete it ourselves */
|
||||
NormalRoutine = NULL;
|
||||
NormalContext = NULL;
|
||||
KeRaiseIrql(APC_LEVEL, &OldIrql);
|
||||
IopCompleteRequest(&Irp->Tail.Apc,
|
||||
&NormalRoutine,
|
||||
@@ -3480,6 +3484,8 @@ NtSetInformationFile(IN HANDLE FileHandle,
|
||||
Irp->UserIosb = IoStatusBlock;
|
||||
|
||||
/* The IRP wasn't completed, complete it ourselves */
|
||||
NormalRoutine = NULL;
|
||||
NormalContext = NULL;
|
||||
KeRaiseIrql(APC_LEVEL, &OldIrql);
|
||||
IopCompleteRequest(&Irp->Tail.Apc,
|
||||
&NormalRoutine,
|
||||
|
||||
Reference in New Issue
Block a user