On 2014-10-08 21:32, pschweitzer(a)svn.reactos.org wrote:
+ MftRecord = ExAllocatePoolWithTag(NonPagedPool,
+ Vcb->NtfsInfo.BytesPerFileRecord,
+ TAG_NTFS);
+ if (MftRecord == NULL)
+ {
+ return NULL;
+ }
+
+ if (!NT_SUCCESS(ReadFileRecord(Vcb, NTFS_FILE_ROOT, MftRecord)))
+ {
+ return NULL;
+ }
+
+ FileName = GetFileNameFromRecord(MftRecord);
+ if (!FileName)
+ {
+ return NULL;
+ }
Fcb = NtfsCreateFCB(L"\\", Vcb);
-
-// memset(Fcb->entry.Filename, ' ', 11);
-
-// Fcb->Entry.DataLengthL = Vcb->CdInfo.RootSize;
-// Fcb->Entry.ExtentLocationL = Vcb->CdInfo.RootStart;
-// Fcb->Entry.FileFlags = 0x02; // FILE_ATTRIBUTE_DIRECTORY;
+ if (!Fcb)
+ {
+ return NULL;
+ }
These failure cases look like they're all at least leaking MftRecord :p