Use snprintf when available to avoid security warnings (refs #25)

This commit is contained in:
Peter Dimov
2022-06-13 16:02:53 +03:00
parent 78f28be697
commit 601ee4ba7a

View File

@ -73,6 +73,12 @@ public:
#if defined(BOOST_MSVC)
# pragma warning( push )
# pragma warning( disable: 4996 )
#endif
#if ( defined(_MSC_VER) && _MSC_VER < 1900 ) || ( defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) )
# define BOOST_ASSERT_SNPRINTF(buffer, format, arg) std::sprintf(buffer, format, arg)
#else
# define BOOST_ASSERT_SNPRINTF(buffer, format, arg) std::snprintf(buffer, sizeof(buffer)/sizeof(buffer[0]), format, arg)
#endif
std::string to_string() const
@ -88,14 +94,14 @@ public:
char buffer[ 16 ];
std::sprintf( buffer, ":%lu", ln );
BOOST_ASSERT_SNPRINTF( buffer, ":%lu", ln );
r += buffer;
unsigned long co = column();
if( co )
{
std::sprintf( buffer, ":%lu", co );
BOOST_ASSERT_SNPRINTF( buffer, ":%lu", co );
r += buffer;
}
@ -111,6 +117,8 @@ public:
return r;
}
#undef BOOST_ASSERT_SNPRINTF
#if defined(BOOST_MSVC)
# pragma warning( pop )
#endif