physfs seems buggy and allows opening empty filename, catch this case
authorMatthias Braun <matze@braunis.de>
Wed, 31 Jan 2007 16:23:38 +0000 (16:23 +0000)
committerMatthias Braun <matze@braunis.de>
Wed, 31 Jan 2007 16:23:38 +0000 (16:23 +0000)
SVN-Revision: 4757

src/physfs/physfs_sdl.cpp
src/physfs/physfs_stream.cpp

index 5ac1308..0d6730b 100644 (file)
@@ -77,6 +77,12 @@ static int funcClose(struct SDL_RWops* context)
 
 SDL_RWops* get_physfs_SDLRWops(const std::string& filename)
 {
+       // check this as PHYSFS seems to be buggy and still returns a
+       // valid pointer in this case
+       if(filename == "") {
+               throw std::runtime_error("Couldn't open file: emtpy filename");
+       }
+
     PHYSFS_file* file = (PHYSFS_file*) PHYSFS_openRead(filename.c_str());
     if(!file) {
         std::stringstream msg;
index 70175ed..1bc8d50 100644 (file)
 
 IFileStreambuf::IFileStreambuf(const std::string& filename)
 {
+       // check this as PHYSFS seems to be buggy and still returns a
+       // valid pointer in this case
+       if(filename == "") {
+               throw std::runtime_error("Couldn't open file: emtpy filename");
+       }
     file = PHYSFS_openRead(filename.c_str());
     if(file == 0) {
         std::stringstream msg;