commit a995aaa61bf2e6fe41d937df17433cdfef7a70c6
parent bef0db0f3e04e7128ad7957496677a46671738df
Author: Chris Bracken <chris@bracken.jp>
Date: Fri, 6 Mar 2026 17:26:22 +0900
Check return value of git_reference_peel
We now check the return value of git_reference_peel to avoid a NULL
deref if peeling fails.
Diffstat:
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/git/reference.c b/src/git/reference.c
@@ -51,13 +51,12 @@ GitReference* gitreference_create(git_repository* repo,
// Create a GitCommit from the object.
git_object* obj = NULL;
- git_reference_peel(&obj, git_ref, GIT_OBJECT_ANY);
- const git_oid* id = git_object_id(obj);
- git_object_free(obj);
- if (!id) {
- errx(1, "git_object_id");
+ if (git_reference_peel(&obj, git_ref, GIT_OBJECT_ANY) != 0) {
+ errx(1, "git_reference_peel");
}
+ const git_oid* id = git_object_id(obj);
ref->commit = gitcommit_create(id, repo);
+ git_object_free(obj);
git_reference_free(git_ref);
return ref;