aboutsummaryrefslogtreecommitdiff
path: root/object/store/packed/pack.go
diff options
context:
space:
mode:
Diffstat (limited to 'object/store/packed/pack.go')
-rw-r--r--object/store/packed/pack.go10
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
}