strchr() can only find what is was asked for
diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index 90b9e79..99cca41 100755
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -353,6 +353,7 @@
unsigned long ucs = 0;
ptrdiff_t delta = 0;
unsigned mult = 1;
+ const char semicolon = ';';
if ( *(p+2) == 'x' ) {
// Hexadecimal.
@@ -361,11 +362,12 @@
}
const char* q = p+3;
- q = strchr( q, ';' );
+ q = strchr( q, semicolon );
- if ( !q || !*q ) {
+ if ( !q ) {
return 0;
}
+ TIXMLASSERT( *q == semicolon );
delta = q-p;
--q;
@@ -394,11 +396,12 @@
}
const char* q = p+2;
- q = strchr( q, ';' );
+ q = strchr( q, semicolon );
- if ( !q || !*q ) {
+ if ( !q ) {
return 0;
}
+ TIXMLASSERT( *q == semicolon );
delta = q-p;
--q;