gout

A static git page generator
git clone https://git.bracken.jp/gout.git
Log | Files | Refs | README | LICENSE

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:
Msrc/git/reference.c | 9++++-----
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;