From 355f5b3dc9ae560827cd274e113f43d09ee9ac49 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Thu, 5 Mar 2026 21:09:07 +0800 Subject: *: Fix overflows --- format/pack/ingest/idx_write.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'format/pack/ingest/idx_write.go') diff --git a/format/pack/ingest/idx_write.go b/format/pack/ingest/idx_write.go index 8db11ba0..904afb6c 100644 --- a/format/pack/ingest/idx_write.go +++ b/format/pack/ingest/idx_write.go @@ -7,6 +7,8 @@ import ( "hash" "io" "slices" + + "codeberg.org/lindenii/furgit/internal/intconv" ) const ( @@ -87,7 +89,12 @@ func writeIdx(state *ingestState) error { for _, recordIdx := range order { offset := state.records[recordIdx].offset if offset >= 0x80000000 { - word := 0x80000000 | uint32(len(largeOffsets)) + largeOffsetIdx, err := intconv.IntToUint32(len(largeOffsets)) + if err != nil { + return err + } + + word := 0x80000000 | largeOffsetIdx largeOffsets = append(largeOffsets, offset) binary.BigEndian.PutUint32(scratch[:4], word) -- cgit v1.3.1-10-gc9f91