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