Message ID | 20200330140247.GA476088@coredump.intra.peff.net (mailing list archive) |
---|---|
Headers | show |
Series | oid_array cleanups | expand |
Hi Peff, On Mon, Mar 30, 2020 at 10:02:47AM -0400, Jeff King wrote: > I recently encountered a repo in the wild that had over 2^31 objects, > and found that cat-file barfed: > > $ git cat-file --batch-all-objects --batch-check > fatal: size_t overflow: 32 * 18446744071562067968 > > The issue is that we use an "int" to store the count and the allocation. > Fortunately our st_mult() protection kicks in before we end up with an > undersized buffer, so this shouldn't be dangerous. And while I'd argue > that having that many objects is probably silly and likely to cause > other problems, I'd just as soon we kept our allocating code as robust > as possible. > > The first patch is the actual fix, followed by some related type > cleanup. The rest of it is just leftovers from the > s/sha1_array/oid_array/ transition a few years back. > > [1/7]: oid_array: use size_t for count and allocation > [2/7]: oid_array: use size_t for iteration > [3/7]: oid_array: rename source file from sha1-array > [4/7]: test-tool: rename sha1-array to oid-array > [5/7]: bisect: stop referring to sha1_array > [6/7]: ref-filter: stop referring to "sha1 array" > [7/7]: oidset: stop referring to sha1-array Thanks for this. I reviewed the patch, which was a breeze thanks to how you broke it out. I don't think that I said anything useful in my actual review, which is to say that this looks good from my perspective. Sorry that I let it sit in my inbox for a few days. Trying to get better about that :). Reviewed-by: Taylor Blau <me@ttaylorr.com> Thanks, Taylor