https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d592e00dfa07277b2f27c…
commit d592e00dfa07277b2f27c4f50543c8caacdd1bce
Author: Pierre Schweitzer <pierre(a)reactos.org>
AuthorDate: Thu Sep 5 08:28:56 2019 +0200
Commit: Pierre Schweitzer <pierre(a)reactos.org>
CommitDate: Thu Sep 5 08:36:19 2019 +0200
[MOUNTMGR] Fix QueryPointsFromMemory and make it working
Select the current stack location for output buffer
And set output size so that buffer gets properly copied to caller
---
drivers/filters/mountmgr/point.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/filters/mountmgr/point.c b/drivers/filters/mountmgr/point.c
index d9a468f32c2..d63ec3a4592 100644
--- a/drivers/filters/mountmgr/point.c
+++ b/drivers/filters/mountmgr/point.c
@@ -332,12 +332,13 @@ QueryPointsFromMemory(IN PDEVICE_EXTENSION DeviceExtension,
}
/* Now, ensure output buffer can hold everything */
- Stack = IoGetNextIrpStackLocation(Irp);
+ Stack = IoGetCurrentIrpStackLocation(Irp);
MountPoints = (PMOUNTMGR_MOUNT_POINTS)Irp->AssociatedIrp.SystemBuffer;
/* Ensure we set output to let user reallocate! */
MountPoints->Size = sizeof(MOUNTMGR_MOUNT_POINTS) + TotalSize;
MountPoints->NumberOfMountPoints = TotalSymLinks;
+ Irp->IoStatus.Information = sizeof(MOUNTMGR_MOUNT_POINTS) + TotalSize;
if (MountPoints->Size >
Stack->Parameters.DeviceIoControl.OutputBufferLength)
{