read_and_strip_branch: fix typo'd address-of operator

When we are chomping newlines from the end of a strbuf, we must check "sb.len != 0" before accessing "sb.buf[sb.len - 1]". However, this code mistakenly checks "&sb.len", which is always true (it is a part of an auto struct, so the address is always non-zero). This could lead to us accessing memory outside the strbuf when we read an empty file. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Jan 28, 2015 at 12:57 UTC 66ec904b4e5779c2ffd68d3bb8071cc15b2287c7
1 file changed +1 -1
wt-status.c
+1 -1
@@ -975,7 +975,7 @@ static char *read_and_strip_branch(const char *path)
975 if (strbuf_read_file(&sb, git_path("%s", path), 0) <= 0)
976 goto got_nothing;
977
978 - while (&sb.len && sb.buf[sb.len - 1] == '\n')
978 + while (sb.len && sb.buf[sb.len - 1] == '\n')
979 strbuf_setlen(&sb, sb.len - 1);
980 if (!sb.len)
981 goto got_nothing;