aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2024-12-06 13:23:16 +0900
committerJunio C Hamano <gitster@pobox.com>2024-12-06 13:23:16 +0900
commitb4269ebf3591b51bd0463057b97e1786123b74d1 (patch)
tree097b84163806950ecd97cf74c60d7cb4a21c3b93
parentThe thirteenth batch (diff)
parentref-cache: fix invalid free operation in `free_ref_entry` (diff)
downloadgit-b4269ebf3591b51bd0463057b97e1786123b74d1.tar.gz
git-b4269ebf3591b51bd0463057b97e1786123b74d1.zip
Merge branch 'sj/refs-symref-referent-fix'
A double-free that may not trigger in practice by luck has been corrected in the reference resolution code. * sj/refs-symref-referent-fix: ref-cache: fix invalid free operation in `free_ref_entry`
-rw-r--r--refs/ref-cache.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/refs/ref-cache.c b/refs/ref-cache.c
index 35bae7e05d..02f09e4df8 100644
--- a/refs/ref-cache.c
+++ b/refs/ref-cache.c
@@ -68,8 +68,9 @@ static void free_ref_entry(struct ref_entry *entry)
* trigger the reading of loose refs.
*/
clear_ref_dir(&entry->u.subdir);
+ } else {
+ free(entry->u.value.referent);
}
- free(entry->u.value.referent);
free(entry);
}