author | Thomas Rast <trast@student.ethz.ch> | |
Wed, 28 Jul 2010 16:36:31 +0000 (18:36 +0200) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 28 Jul 2010 21:08:44 +0000 (14:08 -0700) | ||
commit | 46be82dfd0850d7e96b1401a81a396e0cd0e0527 | |
tree | 6ddd92ec94b8f03bbb4c78edae68e552678cbb09 | tree | snapshot |
parent | dc49cd769b5fa6b7e0114b051c34a849828a7603 | commit | diff |
xsize_t: check whether we lose bits
Attempting to mmap (via git-add or similar) a file larger than 4GB on
32-bit Linux systems results in a repository that has only the file
modulo 4GB stored, because of truncation of the off_t file size to a
size_t for mmap.
When xsize_t was introduced to handle this truncation in dc49cd7 (Cast
64 bit off_t to 32 bit size_t, 2007-03-06), Shawn even pointed out
that it should detect when such a cutoff happens.
Make it so.
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Attempting to mmap (via git-add or similar) a file larger than 4GB on
32-bit Linux systems results in a repository that has only the file
modulo 4GB stored, because of truncation of the off_t file size to a
size_t for mmap.
When xsize_t was introduced to handle this truncation in dc49cd7 (Cast
64 bit off_t to 32 bit size_t, 2007-03-06), Shawn even pointed out
that it should detect when such a cutoff happens.
Make it so.
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-compat-util.h | diff | blob | history |