Merge pull request #656 from Gumichan01/master
fix "dereference before null check" defect
This commit is contained in:
17
tinyxml2.cpp
17
tinyxml2.cpp
@@ -2151,10 +2151,16 @@ void XMLDocument::DeleteNode( XMLNode* node ) {
|
|||||||
|
|
||||||
XMLError XMLDocument::LoadFile( const char* filename )
|
XMLError XMLDocument::LoadFile( const char* filename )
|
||||||
{
|
{
|
||||||
|
if ( !filename ) {
|
||||||
|
TIXMLASSERT( false );
|
||||||
|
SetError( XML_ERROR_FILE_COULD_NOT_BE_OPENED, 0, "filename=<null>" );
|
||||||
|
return _errorID;
|
||||||
|
}
|
||||||
|
|
||||||
Clear();
|
Clear();
|
||||||
FILE* fp = callfopen( filename, "rb" );
|
FILE* fp = callfopen( filename, "rb" );
|
||||||
if ( !fp ) {
|
if ( !fp ) {
|
||||||
SetError( XML_ERROR_FILE_NOT_FOUND, 0, "filename=%s", filename ? filename : "<null>");
|
SetError( XML_ERROR_FILE_NOT_FOUND, 0, "filename=%s", filename );
|
||||||
return _errorID;
|
return _errorID;
|
||||||
}
|
}
|
||||||
LoadFile( fp );
|
LoadFile( fp );
|
||||||
@@ -2233,9 +2239,15 @@ XMLError XMLDocument::LoadFile( FILE* fp )
|
|||||||
|
|
||||||
XMLError XMLDocument::SaveFile( const char* filename, bool compact )
|
XMLError XMLDocument::SaveFile( const char* filename, bool compact )
|
||||||
{
|
{
|
||||||
|
if ( !filename ) {
|
||||||
|
TIXMLASSERT( false );
|
||||||
|
SetError( XML_ERROR_FILE_COULD_NOT_BE_OPENED, 0, "filename=<null>" );
|
||||||
|
return _errorID;
|
||||||
|
}
|
||||||
|
|
||||||
FILE* fp = callfopen( filename, "w" );
|
FILE* fp = callfopen( filename, "w" );
|
||||||
if ( !fp ) {
|
if ( !fp ) {
|
||||||
SetError( XML_ERROR_FILE_COULD_NOT_BE_OPENED, 0, "filename=%s", filename ? filename : "<null>");
|
SetError( XML_ERROR_FILE_COULD_NOT_BE_OPENED, 0, "filename=%s", filename );
|
||||||
return _errorID;
|
return _errorID;
|
||||||
}
|
}
|
||||||
SaveFile(fp, compact);
|
SaveFile(fp, compact);
|
||||||
@@ -2791,4 +2803,3 @@ bool XMLPrinter::Visit( const XMLUnknown& unknown )
|
|||||||
}
|
}
|
||||||
|
|
||||||
} // namespace tinyxml2
|
} // namespace tinyxml2
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user