diff --git a/tinyxml.cpp b/tinyxml.cpp index 9c161df..22dadca 100644 --- a/tinyxml.cpp +++ b/tinyxml.cpp @@ -112,7 +112,12 @@ void TiXmlBase::EncodeString( const TIXML_STRING& str, TIXML_STRING* outString ) char buf[ 32 ]; #if defined(TIXML_SNPRINTF) - TIXML_SNPRINTF( buf, sizeof(buf), "&#x%02X;", (unsigned) ( c & 0xff ) ); + #if defined(TIXML_SNPRINTF_S) + TIXML_SNPRINTF( buf, sizeof(buf), _TRUNCATE, "&#x%02X;", (unsigned) ( c & 0xff ) ); + #else + TIXML_SNPRINTF( buf, sizeof(buf), "&#x%02X;", (unsigned) ( c & 0xff ) ); + buf[sizeof(buf) - 1] = '\0'; + #endif #else sprintf( buf, "&#x%02X;", (unsigned) ( c & 0xff ) ); #endif diff --git a/tinyxml.h b/tinyxml.h index 09ebd2c..f67f4c8 100644 --- a/tinyxml.h +++ b/tinyxml.h @@ -61,6 +61,7 @@ distribution. #ifdef TIXML_SAFE #if defined(_MSC_VER) && (_MSC_VER >= 1400 ) // Microsoft visual studio, version 2005 and higher. + #define TIXML_SNPRINTF_S #define TIXML_SNPRINTF _snprintf_s #define TIXML_SSCANF sscanf_s #elif defined(_MSC_VER) && (_MSC_VER >= 1200 )