From f13bede758cd419c407a9124a13b7955f8ea0068 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 28 Jan 2009 20:31:19 +0000 Subject: [PATCH] Fix an unlikely degenerate case of evutil_vsnprintf svn:r1067 --- evutil.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/evutil.c b/evutil.c index 2dea5837..53cb75d3 100644 --- a/evutil.c +++ b/evutil.c @@ -340,18 +340,18 @@ evutil_snprintf(char *buf, size_t buflen, const char *format, ...) int evutil_vsnprintf(char *buf, size_t buflen, const char *format, va_list ap) { + int r; + if (!buflen) + return 0; #ifdef _MSC_VER - int r = _vsnprintf(buf, buflen, format, ap); - buf[buflen-1] = '\0'; - if (r >= 0) - return r; - else - return _vscprintf(format, ap); + r = _vsnprintf(buf, buflen, format, ap); + if (r < 0) + r = _vscprintf(format, ap); #else - int r = vsnprintf(buf, buflen, format, ap); + r = vsnprintf(buf, buflen, format, ap); +#endif buf[buflen-1] = '\0'; return r; -#endif } #define USE_INTERNAL_NTOP