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))
             {

Reply via email to