Просмотр исходного кода

Check ftell() result for error code before using it.

Dmitry-Me 11 лет назад
Родитель
Сommit
acb9c9c260
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;