From: Jeff King Date: Wed, 19 Aug 2015 18:12:48 +0000 (-0400) Subject: show-branch: use a strbuf for reflog descriptions X-Git-Tag: v2.2.3~1^2 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/78f23bdf68dae56d644892990484951583a64014?hp=5015f01c12a45a1042c1aa6b6f7f6b62bfa00ade show-branch: use a strbuf for reflog descriptions When we show "branch@{0}", we format into a fixed-size buffer using sprintf. This can overflow if you have long branch names. We can fix it by using a temporary strbuf. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- diff --git a/builtin/show-branch.c b/builtin/show-branch.c index 270e39c6c1..9e60b12445 100644 --- a/builtin/show-branch.c +++ b/builtin/show-branch.c @@ -720,7 +720,6 @@ int cmd_show_branch(int ac, const char **av, const char *prefix) if (reflog) { unsigned char sha1[20]; - char nth_desc[256]; char *ref; int base = 0; unsigned int flags = 0; @@ -759,6 +758,7 @@ int cmd_show_branch(int ac, const char **av, const char *prefix) for (i = 0; i < reflog; i++) { char *logmsg; + char *nth_desc; const char *msg; unsigned long timestamp; int tz; @@ -777,8 +777,10 @@ int cmd_show_branch(int ac, const char **av, const char *prefix) show_date(timestamp, tz, 1), msg); free(logmsg); - sprintf(nth_desc, "%s@{%d}", *av, base+i); + + nth_desc = xstrfmt("%s@{%d}", *av, base+i); append_ref(nth_desc, sha1, 1); + free(nth_desc); } free(ref); }