diff options
| author | 2026-03-06 08:05:51 +0800 | |
|---|---|---|
| committer | 2026-03-06 10:00:35 +0800 | |
| commit | e15054a4f93fc54806e84aa7036e60168e78e823 (patch) | |
| tree | b576dcb1d3368324e7ca73ca0fe79dd8865c5524 /format/commitgraph/bloom/settings.go | |
| parent | internal/intconv: Add Uint32ToUint8 (diff) | |
| signature | No signature | |
format/commitgraph: Add initial commit-graph support
Diffstat (limited to 'format/commitgraph/bloom/settings.go')
| -rw-r--r-- | format/commitgraph/bloom/settings.go | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/format/commitgraph/bloom/settings.go b/format/commitgraph/bloom/settings.go index 5aa122a9..764653bd 100644 --- a/format/commitgraph/bloom/settings.go +++ b/format/commitgraph/bloom/settings.go @@ -1,6 +1,10 @@ package bloom -import "encoding/binary" +import ( + "encoding/binary" + + "codeberg.org/lindenii/furgit/internal/intconv" +) // Settings describe the changed-paths Bloom filter parameters stored in // commit-graph BDAT chunks. @@ -27,5 +31,20 @@ func ParseSettings(bdat []byte) (*Settings, error) { MaxChangePaths: DefaultMaxChange, } + switch settings.HashVersion { + case 1, 2: + default: + return nil, ErrInvalid + } + + if settings.NumHashes == 0 { + return nil, ErrInvalid + } + + _, err := intconv.Uint32ToInt(settings.NumHashes) + if err != nil { + return nil, ErrInvalid + } + return settings, nil } |
