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.