]> git.ipfire.org Git - thirdparty/git.git/commit
odb: guard against data loss checking out a huge file
authorMatt Cooper <vtbassmatt@gmail.com>
Tue, 2 Nov 2021 15:46:10 +0000 (15:46 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 3 Nov 2021 18:22:27 +0000 (11:22 -0700)
commitd6a09e795d77ddc76c5141047340dc3cb62355f4
tree37f068272f06f44d2b3ddfe77d700e74e8bc8772
parente2ffeae3f6795939e1af9f8e2b5fa151343eec66
odb: guard against data loss checking out a huge file

This introduces an additional guard for platforms where `unsigned long`
and `size_t` are not of the same size. If the size of an object in the
database would overflow `unsigned long`, instead we now exit with an
error.

A complete fix will have to update _many_ other functions throughout the
codebase to use `size_t` instead of `unsigned long`. It will have to be
implemented at some stage.

This commit puts in a stop-gap for the time being.

Helped-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Matt Cooper <vtbassmatt@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
delta.h
object-file.c
packfile.c