| Index: src/platform-posix.cc
|
| diff --git a/src/platform-posix.cc b/src/platform-posix.cc
|
| index 83f6c8112edf0732e4de957779e393d13d2deda3..7082589298398e1b9eff864acdef3120bf591c77 100644
|
| --- a/src/platform-posix.cc
|
| +++ b/src/platform-posix.cc
|
| @@ -37,6 +37,7 @@
|
| #include <sys/resource.h>
|
| #include <sys/time.h>
|
| #include <sys/types.h>
|
| +#include <sys/stat.h>
|
|
|
| #include <arpa/inet.h>
|
| #include <netinet/in.h>
|
| @@ -130,7 +131,14 @@ int OS::GetLastError() {
|
| //
|
|
|
| FILE* OS::FOpen(const char* path, const char* mode) {
|
| - return fopen(path, mode);
|
| + FILE* file = fopen(path, mode);
|
| + if (file == NULL) return NULL;
|
| + struct stat file_stat;
|
| + if (fstat(fileno(file), &file_stat) != 0) return NULL;
|
| + bool is_regular_file = ((file_stat.st_mode & S_IFREG) != 0);
|
| + if (is_regular_file) return file;
|
| + fclose(file);
|
| + return NULL;
|
| }
|
|
|
|
|
|
|