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/rev_write.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'format/pack/ingest/rev_write.go') diff --git a/format/pack/ingest/rev_write.go b/format/pack/ingest/rev_write.go index afa9b4a9..8d30474a 100644 --- a/format/pack/ingest/rev_write.go +++ b/format/pack/ingest/rev_write.go @@ -3,6 +3,8 @@ package ingest import ( "encoding/binary" "slices" + + "codeberg.org/lindenii/furgit/internal/intconv" ) const ( @@ -53,9 +55,14 @@ func writeRev(state *ingestState) error { } for _, recordIdx := range packOrder { - binary.BigEndian.PutUint32(scratch[:4], uint32(recordToIdxPos[recordIdx])) + recordPos, err := intconv.IntToUint32(recordToIdxPos[recordIdx]) + if err != nil { + return err + } + + binary.BigEndian.PutUint32(scratch[:4], recordPos) - err := writeAndHash(state.revFile, hashImpl, scratch[:4]) + err = writeAndHash(state.revFile, hashImpl, scratch[:4]) if err != nil { return err } -- cgit v1.3.1-10-gc9f91