Bläddra i källkod

Merge branch 'Dmitry-Me-makeCodeMoreDefensive'

Lee Thomason 11 år sedan
förälder
incheckning
b6ea923f0f
1 ändrade filer med 7 tillägg och 6 borttagningar
  1. 7 6
      tinyxml2.cpp

+ 7 - 6
tinyxml2.cpp

@@ -216,13 +216,14 @@ const char* StrPair::GetStr()
                     //   中 or 中
 
                     if ( *(p+1) == '#' ) {
-                        char buf[10] = { 0 };
-                        int len;
+                        const int buflen = 10;
+                        char buf[buflen] = { 0 };
+                        int len = 0;
                         p = const_cast<char*>( XMLUtil::GetCharacterRef( p, buf, &len ) );
-                        for( int i=0; i<len; ++i ) {
-                            *q++ = buf[i];
-                        }
-                        TIXMLASSERT( q <= p );
+                        TIXMLASSERT( 0 <= len && len <= buflen );
+                        TIXMLASSERT( q + len <= p );
+                        memcpy( q, buf, len );
+                        q += len;
                     }
                     else {
                         int i=0;