Bladeren bron

Merge pull request #272 from Dmitry-Me/properTreatStrchrPostConditions

strchr() can only find what is was asked for
Lee Thomason 11 jaren geleden
bovenliggende
commit
ba7d9df976
1 gewijzigde bestanden met toevoegingen van 7 en 4 verwijderingen
  1. 7 4
      tinyxml2.cpp

+ 7 - 4
tinyxml2.cpp

@@ -353,6 +353,7 @@ const char* XMLUtil::GetCharacterRef( const char* p, char* value, int* length )
         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* XMLUtil::GetCharacterRef( const char* p, char* value, int* length )
             }
 
             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* XMLUtil::GetCharacterRef( const char* p, char* value, int* length )
             }
 
             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;