On 21/09/17 19:49, Torsten Bögershausen wrote: > On 2017-09-21 18:46, Ramsay Jones wrote: >> >> Signed-off-by: Ramsay Jones <ramsay@xxxxxxxxxxxxxxxxxxxx> >> --- >> git-compat-util.h | 6 ++++-- >> 1 file changed, 4 insertions(+), 2 deletions(-) >> >> diff --git a/git-compat-util.h b/git-compat-util.h >> index 9bc15b036..cedad4d58 100644 >> --- a/git-compat-util.h >> +++ b/git-compat-util.h >> @@ -898,9 +898,11 @@ static inline char *xstrdup_or_null(const char *str) >> >> static inline size_t xsize_t(off_t len) >> { >> - if (len > (size_t) len) >> + size_t size = (size_t) len; >> + >> + if (len != (off_t) size) >> die("Cannot handle files this big"); >> - return (size_t)len; >> + return size; > > Hm, can someone help me out ? > Why is the cast not needed ? The cast in the return statement? If so, because the 'size' variable has been declared with the size_t type. (The truncation, if any, would happen when 'size' is initialised in the declaration). Hope that helps. ATB, Ramsay Jones