From: Jeff King Date: Tue, 14 Feb 2017 17:25:26 GMT Subject: Re: [PATCH] show-branch: fix crash with long ref name Message-ID: <20170214172526.hzpm3d3ubd3vjnzr@sigill.intra.peff.net> In-Reply-To: <20170214154816.12625-1-chriscool@tuxfamily.org> On Tue, Feb 14, 2017 at 04:48:16PM +0100, Christian Couder wrote: > @@ -791,11 +791,11 @@ int cmd_show_branch(int ac, const char **av, const char *prefix) > head_oid.hash, NULL); > if (head_p) { > head_len = strlen(head_p); > - memcpy(head, head_p, head_len + 1); > + head_cpy = xstrdup(head_p); > } > else { > head_len = 0; > - head[0] = 0; > + head_cpy = xstrdup(""); > } This fixes the problem, but I think we can simplify it quite a bit by using resolve_refdup(). Here's the patch series I ended up with: [1/3]: show-branch: drop head_len variable [2/3]: show-branch: store resolved head in heap buffer [3/3]: show-branch: use skip_prefix to drop magic numbers builtin/show-branch.c | 39 ++++++++++++--------------------------- 1 file changed, 12 insertions(+), 27 deletions(-) -Peff