show-branch: store resolved head in heap buffer
authorJeff King <peff@peff.net>
Tue, 14 Feb 2017 17:27:45 +0000 (12:27 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 14 Feb 2017 19:28:53 +0000 (11:28 -0800)
We resolve HEAD and copy the result to a fixed-size buffer
with memcpy, never checking that it actually fits. This bug
dates back to 8098a178b (Add git-symbolic-ref, 2005-09-30).
Before that we used readlink(), which took a maximum buffer
size.

We can fix this by using resolve_refdup(), which duplicates
the buffer on the heap. That also lets us just check
for a NULL pointer to see if we have resolved HEAD, and
drop the extra head_p variable.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
No differences found