a9bfbc5b69
If you define SNPRINTF_RETURNS_BOGUS, we use a special git_vsnprintf wrapper assumes that vsnprintf returns "-1" instead of the number of characters that you would need to store the result. To do this, it invokes vsnprintf multiple times, growing a heap buffer until we have enough space to hold the result. However, this means we evaluate the va_list parameter multiple times, which is generally a bad thing (it may be modified by calls to vsnprintf, yielding undefined behavior). Instead, we must va_copy it and hand the copy to vsnprintf, so we always have a pristine va_list. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> |
||
---|---|---|
.. | ||
fnmatch | ||
nedmalloc | ||
regex | ||
vcbuild | ||
win32 | ||
basename.c | ||
bswap.h | ||
cygwin.c | ||
cygwin.h | ||
fopen.c | ||
hstrerror.c | ||
inet_ntop.c | ||
inet_pton.c | ||
memmem.c | ||
mingw.c | ||
mingw.h | ||
mkdtemp.c | ||
mmap.c | ||
msvc.c | ||
msvc.h | ||
pread.c | ||
qsort.c | ||
setenv.c | ||
snprintf.c | ||
strcasestr.c | ||
strlcpy.c | ||
strtok_r.c | ||
strtoumax.c | ||
unsetenv.c | ||
win32.h | ||
win32mmap.c | ||
winansi.c |