diff options
Diffstat (limited to 'object/store/packed/pack.go')
| -rw-r--r-- | object/store/packed/pack.go | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/object/store/packed/pack.go b/object/store/packed/pack.go index ba865e51..9cd6162b 100644 --- a/object/store/packed/pack.go +++ b/object/store/packed/pack.go @@ -73,7 +73,7 @@ func openPack(root *os.Root, name string, objectFormat id.ObjectFormat) (*pack, return nil, fmt.Errorf("%w: pack %q: %w", ErrMalformedPackedStore, name, err) } - bloomMapping, filter := openBloom(root, name, objectFormat) + bloomMapping, filter := openBloom(root, name, objectFormat, idx.PackHash()) return &pack{ name: name, @@ -86,7 +86,7 @@ func openPack(root *os.Root, name string, objectFormat id.ObjectFormat) (*pack, }, nil } -func openBloom(root *os.Root, name string, objectFormat id.ObjectFormat) (*mmap.Mmap, *bloom.Bloom) { +func openBloom(root *os.Root, name string, objectFormat id.ObjectFormat, packHash []byte) (*mmap.Mmap, *bloom.Bloom) { mapping, err := mapFile(root, name+".bloom") if err != nil { return nil, nil @@ -99,6 +99,12 @@ func openBloom(root *os.Root, name string, objectFormat id.ObjectFormat) (*mmap. return nil, nil } + if !bytes.Equal(filter.PackHash(), packHash) { + _ = mapping.Close() + + return nil, nil + } + return mapping, &filter } |
