diff options
author | Martin Koegler <martin.koegler@chello.at> | 2017-08-16 22:16:22 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-08-16 21:04:51 -0700 |
commit | 6e37fe34dc77cd18c1b9d9a150eab9549a779fcc (patch) | |
tree | f4d5bd0d1c7a741434dae612d9ff34f5e9cfec9f | |
parent | 88c499273db5833f0754139f472096aaa7c64afc (diff) | |
download | git-6e37fe34dc77cd18c1b9d9a150eab9549a779fcc.tar.gz |
Add overflow check to get_delta_hdr_size
Signed-off-by: Martin Koegler <martin.koegler@chello.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | delta.h | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -96,6 +96,11 @@ static inline size_t get_delta_hdr_size(const unsigned char **datap, cmd = *data++; size |= (cmd & 0x7f) << i; i += 7; + if (bitsizeof(size_t) <= i) { + die("too large object size"); + size = 0; + break; + } } while (cmd & 0x80 && data < top); *datap = data; return size; |