ULONG RequestedDisposition, RequestedOptions;
PVFATCCB pCcb;
PVFATFCB pFcb = NULL;
- PVFATFCB ParentFcb;
+ PVFATFCB ParentFcb = NULL;
PWCHAR c, last;
BOOLEAN PagingFileCreate = FALSE;
BOOLEAN Dots;
* fail immediately
*/
if (Status == STATUS_OBJECT_PATH_NOT_FOUND ||
- Status == STATUS_INVALID_PARAMETER ||
- Status == STATUS_DELETE_PENDING)
+ Status == STATUS_INVALID_PARAMETER ||
+ Status == STATUS_DELETE_PENDING)
{
if (ParentFcb)
{
}
return(Status);
}
+ if (!NT_SUCCESS(Status) && ParentFcb == NULL)
+ {
+ DPRINT1("VfatOpenFile faild for '%wZ', status %x\n", &PathNameU, Status);
+ return Status;
+ }
/*
* If the file open failed then create the required file
}
else
{
- vfatReleaseFCB (DeviceExt, ParentFcb);
+ if (ParentFcb)
+ {
+ vfatReleaseFCB (DeviceExt, ParentFcb);
+ }
return(Status);
}
}