Преглед изворни кода

Merge pull request #193 from Dmitry-Me/shouldCheckFtellForError

Check ftell() result for error code before using it.
Lee Thomason пре 11 година
родитељ
комит
73c822c201
1 измењених фајлова са 6 додато и 1 уклоњено
  1. 6 1
      tinyxml2.cpp

+ 6 - 1
tinyxml2.cpp

@@ -1695,9 +1695,14 @@ XMLError XMLDocument::LoadFile( FILE* fp )
     }
 
     fseek( fp, 0, SEEK_END );
-    size_t size = ftell( fp );
+    const long filelength = ftell( fp );
     fseek( fp, 0, SEEK_SET );
+    if ( filelength == -1L ) {
+        SetError( XML_ERROR_FILE_READ_ERROR, 0, 0 );
+        return _errorID;
+    }
 
+    const size_t size = filelength;
     if ( size == 0 ) {
         SetError( XML_ERROR_EMPTY_DOCUMENT, 0, 0 );
         return _errorID;