summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Okoshkin <a.okoshkin@samsung.com>2017-10-20 14:03:28 +0300
committerJunio C Hamano <gitster@pobox.com>2017-10-21 21:23:44 +0900
commitc26de08370ad5d927d93dbe6fb46103caabb889c (patch)
tree3b500a2666d4989d0a46a9bbfeb18974878ac695
parent4c2224e83951a685185bb8c1f83b28e22fee0e27 (diff)
downloadgit-ao/check-resolve-ref-unsafe-result.tar.gz
commit: check result of resolve_ref_unsafeao/check-resolve-ref-unsafe-result
Add check of the resolved HEAD reference while printing of a commit summary. resolve_ref_unsafe() may return NULL pointer if underlying calls of lstat() or open() fail in files_read_raw_ref(). Such situation can be caused by race: file becomes inaccessible to this moment. Signed-off-by: Andrey Okoshkin <a.okoshkin@samsung.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin/commit.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/builtin/commit.c b/builtin/commit.c
index 1a0da71a43..b528290902 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1483,6 +1483,8 @@ static void print_summary(const char *prefix, const struct object_id *oid,
diff_setup_done(&rev.diffopt);
head = resolve_ref_unsafe("HEAD", 0, junk_oid.hash, NULL);
+ if (!head)
+ die_errno(_("unable to resolve HEAD after creating commit"));
if (!strcmp(head, "HEAD"))
head = _("detached HEAD");
else