From: Jeff King Date: Thu, 16 Feb 2017 17:03:27 GMT Subject: Re: [PATCH 1/3] add git_psprintf helper function Message-ID: <20170216170326.sphzwycj3vlgpymm@sigill.intra.peff.net> In-Reply-To: <616a2b08-71f9-d594-d46c-2687bf20ae2b@google.com> On Thu, Feb 16, 2017 at 07:51:14AM -0800, Jonathan Tan wrote: > On 02/16/2017 03:28 AM, Maxim Moseychuk wrote: > > There are a number of places in the code where we call > > xsnprintf(), with the assumption that the output will fit into > > the buffer. If the buffer is small, then git die. > > In many places buffers have compile-time size, but generated string > > depends from current system locale (gettext)and can have size > > greater the buffer. > > Just run "LANG=ru_RU.UTF8 git bisect start v4.9 v4.8" > > on linux sources - it impossible. > > > > git_psprintf is similar to the standard C sprintf() function > > but safer, since it calculates the maximum space required > > and allocates memory to hold the result. > > The returned string should be freed with free() when no longer needed. > > If I understand this correctly, xstrfmt (in strbuf.h) should already do what > you need, so you do not need a new function. Yes, this is exactly what xstrfmt is for. -Peff