From: Srujith Poojary Date: Sun, 25 Oct 2026 19:21:22 GMT Subject: Re: [PATCH v3] diff-delta: use safe integer arithmetic Message-ID: In-Reply-To: On Sun, Oct 25, 2026 at 11:40 PM Junio C Hamano wrote: > > Srujith Poojary writes: > > > Thank you for the detailed correction. > > > > I have expanded the commit message to include the step-by-step > > breakdown for both the unpacked and packed index allocations, > > detailing the caps on hsize (2^26) and entries (2^28) alongside struct > > padding on 32-bit systems. I also corrected the phrasing regarding > > (hsize + 1) being passed as an argument to st_add3(). > > It seems that the text of v4 did not "detail" anything like that; > you just parroted the conclusion, the final numbers I gave you, > without giving any hint for the readers to validate the math. The > readers who are interested in validating are forced to figure out > how many bytes your calculation assumes each struct type involved > consume---and if they find that your conclusion is wrong, they have > no clue where in your computation things went wrong. > Hi Junio, Thank you for pointing that out. You are completely right—I should have explicitly detailed the struct sizes and exact code bounds instead of quoting summary numbers. I have updated the commit message in v5 to explicitly state: - The byte sizes of each struct on 32-bit platforms (12/16 bytes for unpacked_index_entry, 4 bytes for hash pointers). - The exact origin of the bounds from code: entries capped by (0xffffffu / RABIN_WINDOW = 1,048,575) and hsize capped at 1,048,576. - Why st_mult/st_add/st_add3 are used to guard against size_t wrap-around. Best regards, Srujith