Re: [PATCH] diff: avoid stack-buffer-read-overrun for very long name
On Thu, Apr 26, 2012 at 18:26, Jim Meyering <jim@meyering.net> wrote:
Show 7 quoted lines
> Bert Wesarg wrote:
>> On Thu, Apr 26, 2012 at 18:13, Junio C Hamano <gitster@pobox.com> wrote:
>>> Jim Meyering <jim@meyering.net> writes:
>> strbuf_ensure_terminator(struct strbuf* buf, int term, int always)?
>
> Nice! So far, that's the name I prefer.
> But why the third parameter?
See the second part of my reply:
Show 10 quoted lines
>>> ------------------------------------
>>> builtin/branch.c- if (!buf.len || buf.buf[buf.len-1] != '\n')
>>> builtin/branch.c: strbuf_addch(&buf, '\n');
>>> --
>>> strbuf.h- if (sb->len && sb->buf[sb->len - 1] != '\n')
>>> strbuf.h: strbuf_addch(sb, '\n');
>
> Please note, that while they are checking the .len, they both behave
> differently if .len == 0 or not.
> The first always append a '\n', the latter only, if the string isn't empty.