pretty: avoid reading past end-of-string with "%G"
commitaa4b78d483a918ebee810993e420b4697b0de4d3
authorJeff King <peff@peff.net>
Tue, 17 Jun 2014 00:07:07 +0000 (16 20:07 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 17 Jun 2014 20:41:41 +0000 (17 13:41 -0700)
tree906dc9439e162ce18b6bdb5e67c0076b408f14a3
parent06ca0f45a063f7186cce96a58a5fb6bef16ec204
pretty: avoid reading past end-of-string with "%G"

If the user asks for --format=%G with nothing else, we
correctly realize that "%G" is not a valid placeholder (it
should be "%G?", "%GK", etc). But we still tell the
strbuf_expand code that we consumed 2 characters, causing it
to jump over the trailing NUL and output garbage.

This also fixes the case where "%GX" would be consumed (and
produce no output). In other cases, we pass unrecognized
placeholders through to the final string.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pretty.c
t/t7510-signed-commit.sh