createIrrXMLReader, does not return NULL
Posted: Thu Apr 19, 2007 2:35 pm
I found a bug in a irrXML:
This function returns an instance to class which is used to read xml files. It should return a NULL pointer if the file given in char* variable doesn't exist - but it doesn't.
Let's have a closer look at createIrrXMLReader function:
Whoa? It does not even check if the file exist! If so, it ever won't return NULL pointer. What should we do? Let's just add this check:
Now it's fine. Aren't I'm briliant?
Geez, sorry for my poor english ;[
Code: Select all
createIrrXMLReader(char* filename);
Let's have a closer look at createIrrXMLReader function:
Code: Select all
IrrXMLReader* createIrrXMLReader(const char* filename)
{
return new CXMLReaderImpl<char, IXMLBase>(new CFileReadCallBack(filename));
}
Code: Select all
IrrXMLReader* createIrrXMLReader(const char* filename)
{
FILE* file;
file = fopen(filename, "rb");
if(!file)
return NULL;
else
return new CXMLReaderImpl<char, IXMLBase>(new CFileReadCallBack(filename));
}
Geez, sorry for my poor english ;[