sys: FspVolumeMountNoLock: dereference FsvrtDeviceObject on success

resolves a VPB/FsvrtDeviceObject leak
This commit is contained in:
Bill Zissimopoulos 2016-11-02 13:00:17 -07:00
parent 3e3aa7651f
commit 83c1489b92

View File

@ -473,6 +473,13 @@ static NTSTATUS FspVolumeMountNoLock(
Vpb->SerialNumber = FsvolDeviceExtension->VolumeParams.VolumeSerialNumber; Vpb->SerialNumber = FsvolDeviceExtension->VolumeParams.VolumeSerialNumber;
IoReleaseVpbSpinLock(Irql); IoReleaseVpbSpinLock(Irql);
/*
* Argh! Turns out that the IrpSp->Parameters.MountVolume.DeviceObject is
* passed to us with an extra reference, which is not removed on SUCCESS.
* So go ahead and dereference it now!
*/
ObDereferenceObject(FsvrtDeviceObject);
Irp->IoStatus.Information = 0; Irp->IoStatus.Information = 0;
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }