https://git.reactos.org/?p=reactos.git;a=commitdiff;h=34f2b7830d2081ea0cf1080fdf2ab70113448d26
commit 34f2b7830d2081ea0cf1080fdf2ab70113448d26 Author: Thomas Faber <thomas.fa...@reactos.org> AuthorDate: Thu Oct 28 11:23:02 2021 -0400 Commit: Thomas Faber <thomas.fa...@reactos.org> CommitDate: Sat Nov 13 21:23:39 2021 -0500 [NTOS:IO] Correctly deal with exceptions when handling FileFsDriverPathInformation. CID 1476847 --- ntoskrnl/io/iomgr/iofunc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ntoskrnl/io/iomgr/iofunc.c b/ntoskrnl/io/iomgr/iofunc.c index 784a836a15d..b9bf75736f5 100644 --- a/ntoskrnl/io/iomgr/iofunc.c +++ b/ntoskrnl/io/iomgr/iofunc.c @@ -4259,7 +4259,7 @@ NtQueryVolumeInformationFile(IN HANDLE FileHandle, /* This is to be handled by the kernel, not by FSD */ else if (FsInformationClass == FileFsDriverPathInformation) { - PFILE_FS_DRIVER_PATH_INFORMATION DriverPathInfo; + _SEH2_VOLATILE PFILE_FS_DRIVER_PATH_INFORMATION DriverPathInfo = NULL; _SEH2_TRY { @@ -4270,7 +4270,9 @@ NtQueryVolumeInformationFile(IN HANDLE FileHandle, RtlCopyMemory(DriverPathInfo, FsInformation, Length); /* Is the driver in the IO path? */ - Status = IopGetDriverPathInformation(FileObject, DriverPathInfo, Length); + Status = IopGetDriverPathInformation(FileObject, + (PFILE_FS_DRIVER_PATH_INFORMATION)DriverPathInfo, + Length); /* We failed, don't continue execution */ if (!NT_SUCCESS(Status)) {