summaryrefslogtreecommitdiff
path: root/git-lost-found.sh
diff options
context:
space:
mode:
authorNicolas Pitre <nico@cam.org>2009-03-24 19:56:12 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-03-24 21:37:30 (GMT)
commit720fe22d50a58e3308124ec7f5b0fa6c17be3d22 (patch)
treef1e83f692180fb95cd136b7383aa9f8d742c1ddf /git-lost-found.sh
parent3e5970a41ec0809efb792357af546ffa96568f66 (diff)
downloadgit-720fe22d50a58e3308124ec7f5b0fa6c17be3d22.zip
git-720fe22d50a58e3308124ec7f5b0fa6c17be3d22.tar.gz
git-720fe22d50a58e3308124ec7f5b0fa6c17be3d22.tar.bz2
avoid possible overflow in delta size filtering computation
On a 32-bit system, the maximum possible size for an object is less than 4GB, while 64-bit systems may cope with larger objects. Due to this limitation, variables holding object sizes are using an unsigned long type (32 bits on 32-bit systems, or 64 bits on 64-bit systems). When large objects are encountered, and/or people play with large delta depth values, it is possible for the maximum allowed delta size computation to overflow, especially on a 32-bit system. When this occurs, surviving result bits may represent a value much smaller than what it is supposed to be, or even zero. This prevents some objects from being deltified although they do get deltified when a smaller depth limit is used. Fix this by always performing a 64-bit multiplication. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-lost-found.sh')
0 files changed, 0 insertions, 0 deletions