diff --git a/git-zlib.c b/git-zlib.c index b91cb323aee916..1cd69c17c3cbfa 100644 --- a/git-zlib.c +++ b/git-zlib.c @@ -42,8 +42,10 @@ static void zlib_pre_call(git_zstream *s) { s->z.next_in = s->next_in; s->z.next_out = s->next_out; - s->z.total_in = (uLong)(s->total_in & ULONG_MAX_VALUE); - s->z.total_out = (uLong)(s->total_out & ULONG_MAX_VALUE); + s->z.total_in = (uLong)(s->total_in < ULONG_MAX_VALUE ? + s->total_in : ULONG_MAX_VALUE); + s->z.total_out = (uLong)(s->total_out < ULONG_MAX_VALUE ? + s->total_out : ULONG_MAX_VALUE); s->z.avail_in = zlib_buf_cap(s->avail_in); s->z.avail_out = zlib_buf_cap(s->avail_out); }