From: Jim Meyering Date: Thu, 26 Apr 2012 16:26:45 GMT Subject: Re: [PATCH] diff: avoid stack-buffer-read-overrun for very long name Message-ID: <87y5piwjay.fsf@rho.meyering.net> In-Reply-To: Bert Wesarg wrote: > On Thu, Apr 26, 2012 at 18:13, Junio C Hamano wrote: >> Jim Meyering 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?