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@xxxxxxxxxxx>
---
Thank you for your review.
Changes since the previous patch:
* BUG is replaced with die, message;
* Message is changed.
builtin/commit.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/builtin/commit.c b/builtin/commit.c
index 1a0da71a4..cc27c9af7 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(_("unable to resolve HEAD after creating commit"));
if (!strcmp(head, "HEAD"))
head = _("detached HEAD");
else
--
2.14.2