More checks inside UTF conversion
diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index 90b9e79..60f38ed 100755
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -351,6 +351,7 @@
if ( *(p+1) == '#' && *(p+2) ) {
unsigned long ucs = 0;
+ TIXMLASSERT( sizeof( ucs ) >= 4 );
ptrdiff_t delta = 0;
unsigned mult = 1;
@@ -383,6 +384,7 @@
else {
return 0;
}
+ TIXMLASSERT( mult <= UINT_MAX / 16 );
mult *= 16;
--q;
}
@@ -410,6 +412,7 @@
else {
return 0;
}
+ TIXMLASSERT( mult <= UINT_MAX / 10 );
mult *= 10;
--q;
}
@@ -578,6 +581,7 @@
bool XMLDocument::Accept( XMLVisitor* visitor ) const
{
+ TIXMLASSERT( visitor );
if ( visitor->VisitEnter( *this ) ) {
for ( const XMLNode* node=FirstChild(); node; node=node->NextSibling() ) {
if ( !node->Accept( visitor ) ) {