mirror of
https://git.proxmox.com/git/libgit2
synced 2025-08-04 20:45:07 +00:00
pack-objects: unlock the cache on integer overflow
This commit is contained in:
parent
d97d9559e3
commit
0f07d54b44
@ -832,13 +832,14 @@ static int try_delta(git_packbuilder *pb, struct unpacked *trg,
|
||||
trg_object->delta_data = NULL;
|
||||
}
|
||||
if (delta_cacheable(pb, src_size, trg_size, delta_size)) {
|
||||
if (git__add_uint64_overflow(&pb->delta_cache_size, pb->delta_cache_size, delta_size))
|
||||
return -1;
|
||||
bool overflow = git__add_uint64_overflow(
|
||||
&pb->delta_cache_size, pb->delta_cache_size, delta_size);
|
||||
|
||||
git_packbuilder__cache_unlock(pb);
|
||||
|
||||
trg_object->delta_data = git__realloc(delta_buf, delta_size);
|
||||
GITERR_CHECK_ALLOC(trg_object->delta_data);
|
||||
if (overflow ||
|
||||
!(trg_object->delta_data = git__realloc(delta_buf, delta_size)))
|
||||
return -1;
|
||||
} else {
|
||||
/* create delta when writing the pack */
|
||||
git_packbuilder__cache_unlock(pb);
|
||||
|
Loading…
Reference in New Issue
Block a user