((LocalPath->Buffer[LocalPath->Length/sizeof(WCHAR)-1] != L':') /*&&
(LocalPath->Buffer[LocalPath->Length/sizeof(WCHAR)-1] != L'\\')*/) )) {
RC = MyAppendUnicodeToString(&(NewFCBName->ObjectName), L"\\");
- if(!NT_SUCCESS(RC)) return STATUS_INSUFFICIENT_RESOURCES;
+ if(!NT_SUCCESS(RC)) {
+ UDFReleaseObjectName(NewFCBName);
+ return STATUS_INSUFFICIENT_RESOURCES;
+ }
}
// Make link between Fcb and FileInfo
(*PtrNewFcb)->ParentFcb = RelatedFileInfo->Fcb;
if(!((*PtrNewFcb)->NTRequiredFCB = NewFileInfo->Dloc->CommonFcb)) {
- if(!((*PtrNewFcb)->NTRequiredFCB =
- (PtrUDFNTRequiredFCB)MyAllocatePool__(NonPagedPool, UDFQuadAlign(sizeof(UDFNTRequiredFCB))) ) )
+ (*PtrNewFcb)->NTRequiredFCB = (PtrUDFNTRequiredFCB)MyAllocatePool__(NonPagedPool, UDFQuadAlign(sizeof(UDFNTRequiredFCB)));
+ if(!((*PtrNewFcb)->NTRequiredFCB)) {
+ UDFReleaseObjectName(NewFCBName);
return STATUS_INSUFFICIENT_RESOURCES;
+ }
UDFPrint(("UDFAllocateNtReqFCB: %x\n", (*PtrNewFcb)->NTRequiredFCB));
RtlZeroMemory((*PtrNewFcb)->NTRequiredFCB, UDFQuadAlign(sizeof(UDFNTRequiredFCB)));
if(!(NewFileInfo->Dloc->CommonFcb->NtReqFCBFlags & UDF_NTREQ_FCB_VALID)) {
(*PtrNewFcb)->NTRequiredFCB = NULL;
BrutePoint();
+ UDFReleaseObjectName(NewFCBName);
return STATUS_ACCESS_DENIED;
}
}