https://git.reactos.org/?p=reactos.git;a=commitdiff;h=34f2b7830d2081ea0cf10…
commit 34f2b7830d2081ea0cf1080fdf2ab70113448d26
Author: Thomas Faber <thomas.faber(a)reactos.org>
AuthorDate: Thu Oct 28 11:23:02 2021 -0400
Commit: Thomas Faber <thomas.faber(a)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))
{