diff options
Diffstat (limited to 'packfile.c')
-rw-r--r-- | packfile.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/packfile.c b/packfile.c index 89402cfc69..6423d77faa 100644 --- a/packfile.c +++ b/packfile.c @@ -1060,7 +1060,7 @@ unsigned long unpack_object_header_buffer(const unsigned char *buf, unsigned long len, enum object_type *type, unsigned long *sizep) { unsigned shift; - unsigned long size, c; + size_t size, c; unsigned long used = 0; c = buf[used++]; @@ -1074,10 +1074,10 @@ unsigned long unpack_object_header_buffer(const unsigned char *buf, break; } c = buf[used++]; - size += (c & 0x7f) << shift; + size = st_add(size, st_left_shift(c & 0x7f, shift)); shift += 7; } - *sizep = size; + *sizep = cast_size_t_to_ulong(size); return used; } |