From deaf4758617ca3dade3df953b691cab29ebc1d49 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Tue, 19 Apr 2022 14:29:29 +0100 Subject: [PATCH] sys: FSP_ENTER_FIO: handle bogus fast I/O to fsctl device --- src/sys/driver.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/sys/driver.h b/src/sys/driver.h index 31948e7d..fc9787d6 100644 --- a/src/sys/driver.h +++ b/src/sys/driver.h @@ -306,8 +306,9 @@ VOID FspTraceNtStatus(const char *file, int line, const char *func, NTSTATUS Sta return Result #define FSP_ENTER_FIO(...) \ PDEVICE_OBJECT FsvolDeviceObject; \ - if (FspFsmupDeviceExtensionKind == FspDeviceExtension(DeviceObject)->Kind)\ + switch (FspDeviceExtension(DeviceObject)->Kind)\ { \ + case FspFsmupDeviceExtensionKind: \ FsvolDeviceObject = FspMupGetFsvolDeviceObject(FileObject);\ if (0 == FsvolDeviceObject) \ { \ @@ -315,9 +316,13 @@ VOID FspTraceNtStatus(const char *file, int line, const char *func, NTSTATUS Sta IoStatus->Information = 0; \ return TRUE; \ } \ - } \ - else \ + break; \ + case FspFsvolDeviceExtensionKind: \ FsvolDeviceObject = DeviceObject;\ + break; \ + default: \ + return FALSE; \ + } \ BOOLEAN Result = TRUE; \ BOOLEAN fsp_device_deref = FALSE; \ FSP_ENTER_(ioentr, __VA_ARGS__); \