diff options
Diffstat (limited to 'src/repository.c')
-rw-r--r-- | src/repository.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/repository.c b/src/repository.c index d39a9015d..8723e2fd0 100644 --- a/src/repository.c +++ b/src/repository.c @@ -1747,10 +1747,16 @@ int git_repository_head(git_reference **head_out, git_repository *repo) return 0; } - error = git_reference_lookup_resolved(head_out, repo, git_reference_symbolic_target(head), -1); - git_reference_free(head); + error = git_reference_lookup_resolved(head_out, + repo, git_reference_symbolic_target(head), -1); - return error == GIT_ENOTFOUND ? GIT_EUNBORNBRANCH : error; + if (error == GIT_ENOTFOUND) { + *head_out = head; + return GIT_EUNBORNBRANCH; + } + + git_reference_free(head); + return error; } int git_repository_head_unborn(git_repository *repo) |