Commit e7fac2af by lhchavez

Using unsigned instead

parent 28662c13
...@@ -934,18 +934,20 @@ git_off_t get_delta_base( ...@@ -934,18 +934,20 @@ git_off_t get_delta_base(
if (type == GIT_OBJ_OFS_DELTA) { if (type == GIT_OBJ_OFS_DELTA) {
unsigned used = 0; unsigned used = 0;
unsigned char c = base_info[used++]; unsigned char c = base_info[used++];
base_offset = c & 127; size_t unsigned_base_offset = c & 127;
while (c & 128) { while (c & 128) {
if (left <= used) if (left <= used)
return GIT_EBUFS; return GIT_EBUFS;
base_offset += 1; unsigned_base_offset += 1;
if (!base_offset || MSB(base_offset, 8)) if (!unsigned_base_offset || MSB(unsigned_base_offset, 7))
return 0; /* overflow */ return 0; /* overflow */
c = base_info[used++]; c = base_info[used++];
base_offset = (base_offset << 7) + (c & 127); unsigned_base_offset = (unsigned_base_offset << 7) + (c & 127);
} }
base_offset = delta_obj_offset - base_offset; if ((size_t)delta_obj_offset <= unsigned_base_offset)
if (base_offset <= 0 || base_offset >= delta_obj_offset) return 0; /* out of bound */
base_offset = delta_obj_offset - unsigned_base_offset;
if (base_offset >= delta_obj_offset)
return 0; /* out of bound */ return 0; /* out of bound */
*curpos += used; *curpos += used;
} else if (type == GIT_OBJ_REF_DELTA) { } else if (type == GIT_OBJ_REF_DELTA) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment