mirror of
https://git.proxmox.com/git/libgit2
synced 2025-12-26 18:18:57 +00:00
treebuilder: exit early if running OOM in write_with_buffer
While writing the tree inside of a buffer, we check whether the buffer runs out of memory after each tree entry. While we set the error code as soon as we detect the OOM situation, we happily proceed iterating over the entries. This is not useful at all, as we will try to write into the buffer repeatedly, which cannot work. Fix this by exiting as soon as we are OOM.
This commit is contained in:
parent
8d1e71f5a2
commit
06abbb7f07
@ -847,12 +847,13 @@ int git_treebuilder_write_with_buffer(git_oid *oid, git_treebuilder *bld, git_bu
|
||||
git_buf_put(tree, entry->filename, entry->filename_len + 1);
|
||||
git_buf_put(tree, (char *)entry->oid->id, GIT_OID_RAWSZ);
|
||||
|
||||
if (git_buf_oom(tree))
|
||||
if (git_buf_oom(tree)) {
|
||||
error = -1;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
if (!error &&
|
||||
!(error = git_repository_odb__weakptr(&odb, bld->repo)))
|
||||
if ((error = git_repository_odb__weakptr(&odb, bld->repo)) == 0)
|
||||
error = git_odb_write(oid, odb, tree->ptr, tree->size, GIT_OBJ_TREE);
|
||||
|
||||
out:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user