diff options
| -rw-r--r-- | Private/Source/AppMain.cxx | 11 | ||||
| -rw-r--r-- | Private/Source/FS/NewFS.cxx | 5 |
2 files changed, 15 insertions, 1 deletions
diff --git a/Private/Source/AppMain.cxx b/Private/Source/AppMain.cxx index c113958a..d3f140d2 100644 --- a/Private/Source/AppMain.cxx +++ b/Private/Source/AppMain.cxx @@ -89,7 +89,16 @@ class FilesystemAutomountProvider final { metadataSz, "FolderInfo"); } - NewOS::kcout << (NewOS::Char*)fNewFS->GetImpl()->ReadCatalog(fNewFS->GetImpl()->GetCatalog("/System/"), 512, "FolderInfo"); + auto systemFolder = fNewFS->GetImpl()->GetCatalog("/System/"); + auto buf = fNewFS->GetImpl()->ReadCatalog(systemFolder, 512, "FolderInfo"); + NewOS::kcout << (NewOS::Char*)buf; + + delete (NewOS::Char*) buf; + delete systemFolder; + + systemFolder = fNewFS->GetImpl()->GetCatalog("/Boot/"); + + NewOS::kcout << systemFolder->Name << NewOS::endl; } } } diff --git a/Private/Source/FS/NewFS.cxx b/Private/Source/FS/NewFS.cxx index 9074b348..3e247360 100644 --- a/Private/Source/FS/NewFS.cxx +++ b/Private/Source/FS/NewFS.cxx @@ -285,6 +285,11 @@ _Output NewCatalog* NewFSParser::CreateCatalog(_Input const char* name, NewPartitionBlock* partBlock = (NewPartitionBlock*)sectorBufPartBlock; + if (partBlock->FreeCatalog < 1) { + delete catalogChild; + return nullptr; + } + catalogChild->DataFork = partBlock->DiskSize - partBlock->StartCatalog; catalogChild->ResourceFork = catalogChild->DataFork; |
