Re: [PATCH] for-each-ref: fix off by one read.
Christian Couder <chriscool@tuxfamily.org> writes:
Show 13 quoted lines
> diff --git a/builtin-for-each-ref.c b/builtin-for-each-ref.c
> index 598d4e1..89ea37c 100644
> --- a/builtin-for-each-ref.c
> +++ b/builtin-for-each-ref.c
> @@ -306,7 +306,7 @@ static const char *find_wholine(const char *who, int wholen, const char *buf, un
> if (!eol)
> return "";
> eol++;
> - if (eol[1] == '\n')
> + if (*eol == '\n')
> return ""; /* end of header */
> buf = eol;
> }
Good eyes. This would have broken if
(1) we had a header field that consists of a single character
and then LF. We would have mistaken such a line as the end
of header; or (2) we had a commit or a tag that consists solely of header and
no body. We would have read past the terminating NUL.Thanks.