diff --git a/src/osgPlugins/txp/ReaderWriterTXP.cpp b/src/osgPlugins/txp/ReaderWriterTXP.cpp index 988051ad3..20fa69e8a 100644 --- a/src/osgPlugins/txp/ReaderWriterTXP.cpp +++ b/src/osgPlugins/txp/ReaderWriterTXP.cpp @@ -185,10 +185,16 @@ osgDB::ReaderWriter::ReadResult ReaderWriterTXP::local_readNode(const std::strin { int x,y,lod; unsigned int id; - sscanf(name.c_str(),"subtiles%d_%dx%d_%u",&lod,&x,&y,&id); + if (sscanf(name.c_str(),"subtiles%d_%dx%d_%u",&lod,&x,&y,&id)!=4) + { + return ReadResult::ERROR_IN_READING_FILE; + } + osg::ref_ptr< TXPArchive > archive = getArchive(id,osgDB::getFilePath(file)); if (archive == NULL) + { return ReadResult::ERROR_IN_READING_FILE; + } int majorVersion, minorVersion; archive->GetVersion(majorVersion, minorVersion);