[PATCH v2] commit: check result of resolve_ref_unsafe
- From
Andrey Okoshkin <a.okoshkin@samsung.com>
- Date
- Oct 19, 2017, 09:36 UTC
- Message-ID
- <5fa1f5c6-249e-2aa9-5e9f-c00ebe2c0d9d@samsung.com>
- In-Reply-To
- <0e396c24-167f-901e-9122-cdc17164ec1e@samsung.com>
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> --- 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