Re: [PATCH] diff: avoid stack-buffer-read-overrun for very long name
- From
Jim Meyering <jim@meyering.net>
- Date
- Apr 26, 2012, 16:26 UTC
- Message-ID
- <87y5piwjay.fsf@rho.meyering.net>
- In-Reply-To
- <CAKPyHN1mFGiZd7dDH-stUmr3H1JHwxcP1DkjCYNXZd6Bt-P7+w@mail.gmail.com>
Bert Wesarg wrote:
Show 22 quoted lines
> On Thu, Apr 26, 2012 at 18:13, Junio C Hamano <gitster@pobox.com> wrote: >> Jim Meyering <jim@meyering.net> writes: >> >>> What do you think about replacing those two append-if-needed two-liners: >>> >>> if (buffer2.len && buffer2.buf[buffer2.len - 1] != '/') >>> strbuf_addch(&buffer2, '/'); >>> >>> by something that readably encapsulates the idiom: >>> >>> strbuf_append_if_absent (&buffer2, '/'); >>> >>> (though the name isn't particularly apt, because you might >>> take "absent" to mean "not anywhere in the string," so maybe >>> strbuf_append_if_not_already_at_end (ugly) or >>> strbuf_append_uniq >>> ) >> >> I am not good at names, but strbuf_terminate_with(&buffer2, '/') >> perhaps? > > strbuf_ensure_terminator(struct strbuf* buf, int term, int always)?
Nice! So far, that's the name I prefer. But why the third parameter?