diff options
| author | 2026-03-04 08:26:56 +0800 | |
|---|---|---|
| committer | 2026-03-04 08:59:53 +0800 | |
| commit | ab7501be34032fb9e5c48726a68ae90a917af9eb (patch) | |
| tree | 20d005647569befea8133e953c3270e8fd2a2a5b /format/delta/apply/header.go | |
| parent | *: gofumpt (diff) | |
| signature | No signature | |
*: Lint
Diffstat (limited to 'format/delta/apply/header.go')
| -rw-r--r-- | format/delta/apply/header.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/format/delta/apply/header.go b/format/delta/apply/header.go index 996b006b..dbd29550 100644 --- a/format/delta/apply/header.go +++ b/format/delta/apply/header.go @@ -14,10 +14,12 @@ func ReadHeaderSizes(reader io.ByteReader) (int, int, error) { if err != nil { return 0, 0, err } + dstSize, err := readVarintFromByteReader(reader) if err != nil { return 0, 0, err } + return srcSize, dstSize, nil } @@ -25,15 +27,18 @@ func ReadHeaderSizes(reader io.ByteReader) (int, int, error) { func readVarintFromByteReader(reader io.ByteReader) (int, error) { value := 0 shift := uint(0) + for { b, err := reader.ReadByte() if err != nil { return 0, fmt.Errorf("format/delta/apply: malformed delta varint: %w", err) } + value |= int(b&0x7f) << shift if b&0x80 == 0 { return value, nil } + shift += 7 if shift > 63 { return 0, fmt.Errorf("format/delta/apply: delta varint overflow") |
