mirror of
https://github.com/reactos/reactos.git
synced 2026-05-31 08:17:09 +08:00
[MOUNTMGR] Fix QueryPointsFromSymbolicLinkName and make it working
Select the current stack location for output buffer And set output size so that buffer gets properly copied to caller
This commit is contained in:
@@ -518,7 +518,7 @@ QueryPointsFromSymbolicLinkName(IN PDEVICE_EXTENSION DeviceExtension,
|
||||
}
|
||||
|
||||
/* Get output buffer */
|
||||
Stack = IoGetNextIrpStackLocation(Irp);
|
||||
Stack = IoGetCurrentIrpStackLocation(Irp);
|
||||
MountPoints = (PMOUNTMGR_MOUNT_POINTS)Irp->AssociatedIrp.SystemBuffer;
|
||||
|
||||
/* Compute output length */
|
||||
@@ -528,9 +528,12 @@ QueryPointsFromSymbolicLinkName(IN PDEVICE_EXTENSION DeviceExtension,
|
||||
/* Give length to allow reallocation */
|
||||
MountPoints->Size = sizeof(MOUNTMGR_MOUNT_POINTS) + TotalLength;
|
||||
MountPoints->NumberOfMountPoints = 1;
|
||||
Irp->IoStatus.Information = sizeof(MOUNTMGR_MOUNT_POINTS) + TotalLength;
|
||||
|
||||
if (MountPoints->Size > Stack->Parameters.DeviceIoControl.OutputBufferLength)
|
||||
{
|
||||
Irp->IoStatus.Information = sizeof(MOUNTMGR_MOUNT_POINTS);
|
||||
|
||||
return STATUS_BUFFER_OVERFLOW;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user