[UDFS] Fix crash on boot in release builds with UDFS removable media inserted (#4061) CORE-17598

Changes to specific files and their effects are as follows:
create.cpp - Allows booting past second stage with UDFS media inserted without BSOD
close.cpp - Allows shutdown without hang
dircntrl.cpp - Allows New Hardware Wizard not to hang on initial third phase install
This commit is contained in:
Doug Lyons 2021-10-25 15:21:43 -05:00 committed by GitHub
parent cd48bc7af8
commit a91f5e8e4d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 19 deletions

View file

@ -921,18 +921,18 @@ UDFCloseAllXXXDelayedInDir(
IN BOOLEAN System IN BOOLEAN System
) )
{ {
PUDF_FILE_INFO* PassedList = NULL; PUDF_FILE_INFO* PassedList = NULL;
ULONG PassedListSize = 0; ULONG PassedListSize = 0;
PUDF_FILE_INFO* FoundList = NULL; PUDF_FILE_INFO* FoundList = NULL;
ULONG FoundListSize = 0; ULONG FoundListSize = 0;
NTSTATUS RC; NTSTATUS RC;
ULONG i; ULONG i;
BOOLEAN ResAcq = FALSE; _SEH2_VOLATILE BOOLEAN ResAcq = FALSE;
BOOLEAN AcquiredVcb = FALSE; _SEH2_VOLATILE BOOLEAN AcquiredVcb = FALSE;
UDFNTRequiredFCB* NtReqFcb; UDFNTRequiredFCB* NtReqFcb;
PUDF_FILE_INFO CurFileInfo; PUDF_FILE_INFO CurFileInfo;
PFE_LIST_ENTRY CurListPtr; PFE_LIST_ENTRY CurListPtr;
PFE_LIST_ENTRY* ListPtrArray = NULL; PFE_LIST_ENTRY* ListPtrArray = NULL;
_SEH2_TRY { _SEH2_TRY {

View file

@ -204,7 +204,7 @@ UDFCommonCreate(
ACCESS_MASK DesiredAccess; ACCESS_MASK DesiredAccess;
PACCESS_STATE AccessState; PACCESS_STATE AccessState;
PVCB Vcb = NULL; _SEH2_VOLATILE PVCB Vcb = NULL;
_SEH2_VOLATILE BOOLEAN AcquiredVcb = FALSE; _SEH2_VOLATILE BOOLEAN AcquiredVcb = FALSE;
BOOLEAN OpenExisting = FALSE; BOOLEAN OpenExisting = FALSE;
PERESOURCE Res1 = NULL; PERESOURCE Res1 = NULL;

View file

@ -134,8 +134,8 @@ UDFCommonDirControl(
PFILE_OBJECT FileObject = NULL; PFILE_OBJECT FileObject = NULL;
PtrUDFFCB Fcb = NULL; PtrUDFFCB Fcb = NULL;
PtrUDFCCB Ccb = NULL; PtrUDFCCB Ccb = NULL;
PVCB Vcb = NULL; _SEH2_VOLATILE PVCB Vcb = NULL;
BOOLEAN AcquiredVcb = FALSE; _SEH2_VOLATILE BOOLEAN AcquiredVcb = FALSE;
TmPrint(("UDFCommonDirControl: \n")); TmPrint(("UDFCommonDirControl: \n"));
// BrutePoint(); // BrutePoint();
@ -226,8 +226,8 @@ UDFQueryDirectory(
BOOLEAN PostRequest = FALSE; BOOLEAN PostRequest = FALSE;
PtrUDFNTRequiredFCB NtReqFcb = NULL; PtrUDFNTRequiredFCB NtReqFcb = NULL;
BOOLEAN CanWait = FALSE; BOOLEAN CanWait = FALSE;
PVCB Vcb = NULL; _SEH2_VOLATILE PVCB Vcb = NULL;
BOOLEAN AcquiredFCB = FALSE; _SEH2_VOLATILE BOOLEAN AcquiredFCB = FALSE;
unsigned long BufferLength = 0; unsigned long BufferLength = 0;
UNICODE_STRING SearchPattern; UNICODE_STRING SearchPattern;
PUNICODE_STRING PtrSearchPattern; PUNICODE_STRING PtrSearchPattern;
@ -696,8 +696,8 @@ UDFNotifyChangeDirectory(
BOOLEAN CanWait = FALSE; BOOLEAN CanWait = FALSE;
ULONG CompletionFilter = 0; ULONG CompletionFilter = 0;
BOOLEAN WatchTree = FALSE; BOOLEAN WatchTree = FALSE;
PVCB Vcb = NULL; _SEH2_VOLATILE PVCB Vcb = NULL;
BOOLEAN AcquiredFCB = FALSE; _SEH2_VOLATILE BOOLEAN AcquiredFCB = FALSE;
PEXTENDED_IO_STACK_LOCATION pStackLocation = (PEXTENDED_IO_STACK_LOCATION) IrpSp; PEXTENDED_IO_STACK_LOCATION pStackLocation = (PEXTENDED_IO_STACK_LOCATION) IrpSp;
UDFPrint(("UDFNotifyChangeDirectory\n")); UDFPrint(("UDFNotifyChangeDirectory\n"));