From: Junio C Hamano Date: Thu, 28 Jul 2016 18:25:53 +0000 (-0700) Subject: Merge branch 'js/sign-empty-commit-fix' into maint X-Git-Tag: v2.9.3~57 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/475495ff5e071c895dca772cb59e277ceff84d84?hp=ae8daba6019fba266ba7afd88aa642bf6994fe2c Merge branch 'js/sign-empty-commit-fix' into maint "git commit --amend --allow-empty-message -S" for a commit without any message body could have misidentified where the header of the commit object ends. * js/sign-empty-commit-fix: commit -S: avoid invalid pointer with empty message --- diff --git a/commit.c b/commit.c index 24d4715f24..2a90e37519 100644 --- a/commit.c +++ b/commit.c @@ -1092,9 +1092,14 @@ static int do_sign_commit(struct strbuf *buf, const char *keyid) { struct strbuf sig = STRBUF_INIT; int inspos, copypos; + const char *eoh; /* find the end of the header */ - inspos = strstr(buf->buf, "\n\n") - buf->buf + 1; + eoh = strstr(buf->buf, "\n\n"); + if (!eoh) + inspos = buf->len; + else + inspos = eoh - buf->buf + 1; if (!keyid || !*keyid) keyid = get_signing_key();