From 75c7147c6afcb64a7c8bfedb08f1613c5011ff71 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Fri, 6 Mar 2026 11:26:21 +0800 Subject: objectstore/packed: Split files --- objectstore/packed/trailer_match.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 objectstore/packed/trailer_match.go (limited to 'objectstore/packed/trailer_match.go') diff --git a/objectstore/packed/trailer_match.go b/objectstore/packed/trailer_match.go new file mode 100644 index 00000000..25337cd7 --- /dev/null +++ b/objectstore/packed/trailer_match.go @@ -0,0 +1,29 @@ +package packed + +import "fmt" + +// verifyPackMatchesIndexes checks that one opened pack's trailer hash matches +// every loaded index that references the same pack name. +func (store *Store) verifyPackMatchesIndexes(pack *packFile) error { + err := store.ensureCandidates() + if err != nil { + return err + } + + candidate, ok := store.candidateForPack(pack.name) + if !ok { + return fmt.Errorf("objectstore/packed: missing index for pack %q", pack.name) + } + + index, err := store.openIndex(candidate) + if err != nil { + return err + } + + err = verifyMappedPackMatchesMappedIdx(pack.data, index.data, store.algo) + if err != nil { + return fmt.Errorf("objectstore/packed: pack %q does not match idx %q: %w", pack.name, index.idxName, err) + } + + return nil +} -- cgit v1.3.1-10-gc9f91