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;