summaryrefslogtreecommitdiffhomepage
path: root/Private/NewBoot/BootKit
diff options
context:
space:
mode:
Diffstat (limited to 'Private/NewBoot/BootKit')
-rw-r--r--Private/NewBoot/BootKit/BootKit.hxx11
1 files changed, 7 insertions, 4 deletions
diff --git a/Private/NewBoot/BootKit/BootKit.hxx b/Private/NewBoot/BootKit/BootKit.hxx
index e2e371dd..26c6c755 100644
--- a/Private/NewBoot/BootKit/BootKit.hxx
+++ b/Private/NewBoot/BootKit/BootKit.hxx
@@ -268,8 +268,11 @@ private:
catalogKind->Kind = blob->fKind;
/// Allocate fork for blob.
- catalogKind->FirstFork = (startLba + sizeof(NewCatalog));
- catalogKind->LastFork = catalogKind->FirstFork;
+ if (catalogKind->Kind == kNewFSDataForkKind) {
+ catalogKind->DataFork = (startLba + sizeof(NewCatalog));
+ } else {
+ catalogKind->ResourceFork = (startLba + sizeof(NewCatalog));
+ }
NewFork* forkKind = new NewFork();
memset(forkKind, 0, sizeof(NewFork));
@@ -284,8 +287,8 @@ private:
forkKind->ResourceKind = 0;
/// We're the only fork here.
- forkKind->NextSibling = catalogKind->FirstFork;
- forkKind->PreviousSibling = catalogKind->FirstFork;
+ forkKind->NextSibling = forkKind->Kind == kNewFSDataForkKind ? catalogKind->DataFork : catalogKind->ResourceFork;
+ forkKind->PreviousSibling = kNewFSDataForkKind ? catalogKind->DataFork : catalogKind->ResourceFork;
forkKind->DataOffset = (startLba + sizeof(NewCatalog) + sizeof(NewFork));
forkKind->DataSize = blob->fBlobSz;