diff --git a/compat/snprintf.c b/compat/snprintf.c
index 580966e56a3455b9970b7eef33143c1e9c57d41c..357e733074ea7c85f880fa577ad65dfb3787fec7 100644 (file)
--- a/compat/snprintf.c
+++ b/compat/snprintf.c
if (maxsize > 0) {
ret = vsnprintf(str, maxsize-SNPRINTF_SIZE_CORR, format, ap);
+ if (ret == maxsize-1)
+ ret = -1;
/* Windows does not NUL-terminate if result fills buffer */
str[maxsize-1] = 0;
}
break;
s = str;
ret = vsnprintf(str, maxsize-SNPRINTF_SIZE_CORR, format, ap);
+ if (ret == maxsize-1)
+ ret = -1;
}
free(s);
return ret;