From 8eb6f88a87704d312ff369d63e20ca9f3eccb2ad Mon Sep 17 00:00:00 2001 From: mloy Date: Tue, 19 Aug 2014 14:34:00 +0200 Subject: [PATCH] snprintf does return a signed integer assert if returned value is neagtive --- src/lib_json/json_writer.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib_json/json_writer.cpp b/src/lib_json/json_writer.cpp index af5434e..ab3979a 100644 --- a/src/lib_json/json_writer.cpp +++ b/src/lib_json/json_writer.cpp @@ -74,17 +74,19 @@ std::string valueToString(double value) { #if defined(_MSC_VER) && defined(__STDC_SECURE_LIB__) // Use secure version with // visual studio 2005 to // avoid warning. - size_t len; + int len; #if defined(WINCE) len = _snprintf(buffer, sizeof(buffer), "%.16g", value); #else len = sprintf_s(buffer, sizeof(buffer), "%.16g", value); #endif + assert(len>=0); fixNumericLocale(buffer, buffer + len); #else if ( isfinite( value )) { - size_t len = snprintf(buffer, sizeof(buffer), "%.16g", value); + int len = snprintf(buffer, sizeof(buffer), "%.16g", value); + assert(len>=0); fixNumericLocale(buffer, buffer + len); } else