diff options
author | Andrey Okoshkin <a.okoshkin@samsung.com> | 2017-10-20 14:03:28 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-10-21 21:23:44 +0900 |
commit | c26de08370ad5d927d93dbe6fb46103caabb889c (patch) | |
tree | 3b500a2666d4989d0a46a9bbfeb18974878ac695 | |
parent | 4c2224e83951a685185bb8c1f83b28e22fee0e27 (diff) | |
download | git-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.c | 2 |
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 |