mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-03 04:34:15 +00:00
odb: free object data when id is ambiguous
By the time we recognise this as an ambiguous id, the object's data has been loaded into memory. Free it when returning EABMIGUOUS.
This commit is contained in:
parent
8ca093991d
commit
e54cfb9b54
@ -786,8 +786,10 @@ attempt_lookup:
|
||||
git__free(data);
|
||||
data = raw.data;
|
||||
|
||||
if (found && git_oid__cmp(&full_oid, &found_full_oid))
|
||||
if (found && git_oid__cmp(&full_oid, &found_full_oid)) {
|
||||
git__free(raw.data);
|
||||
return git_odb__error_ambiguous("multiple matches for prefix");
|
||||
}
|
||||
|
||||
found_full_oid = full_oid;
|
||||
found = true;
|
||||
|
@ -22,6 +22,7 @@ void test_odb_mixed__dup_oid(void) {
|
||||
|
||||
cl_git_pass(git_oid_fromstr(&oid, hex));
|
||||
cl_git_pass(git_odb_read_prefix(&obj, _odb, &oid, GIT_OID_HEXSZ));
|
||||
git_odb_object_free(obj);
|
||||
cl_git_pass(git_oid_fromstrn(&oid, short_hex, sizeof(short_hex) - 1));
|
||||
cl_git_pass(git_odb_read_prefix(&obj, _odb, &oid, sizeof(short_hex) - 1));
|
||||
git_odb_object_free(obj);
|
||||
|
Loading…
Reference in New Issue
Block a user