From a509bcb8967336505078e07cffea8306409614ad Mon Sep 17 00:00:00 2001 From: yabause Date: Sun, 2 Nov 2008 21:52:15 +0000 Subject: [PATCH] Now checking if a rom is a regular file before opening. Patch 2214354 by riccardom. --- desmume/src/ROMReader.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/desmume/src/ROMReader.cpp b/desmume/src/ROMReader.cpp index 364ba3b23..3b560de2f 100644 --- a/desmume/src/ROMReader.cpp +++ b/desmume/src/ROMReader.cpp @@ -19,11 +19,19 @@ #include "ROMReader.h" +#include +#include #include #ifdef HAVE_LIBZZIP #include #endif +#ifdef WIN32 +#define stat(...) _stat(__VA_ARGS__) +#define S_IFMT _S_IFMT +#define S_IFREG _S_IFREG +#endif + ROMReader_struct * ROMReaderInit(char ** filename) { #ifdef HAVE_LIBZ @@ -62,6 +70,14 @@ ROMReader_struct STDROMReader = void * STDROMReaderInit(const char * filename) { + struct stat sb; + + if (stat(filename, &sb) == -1) + return 0; + + if ((sb.st_mode & S_IFMT) != S_IFREG) + return 0; + return (void *) fopen(filename, "rb"); }