diff options
| -rw-r--r-- | data.c | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -2665,14 +2665,17 @@ static int _load_raw_file(const char *fn, xs_val **data, int *size, } else { /* newer or never downloaded; read the full file */ + struct stat sb; FILE *f; - if ((f = fopen(fn, "rb")) != NULL) { - *size = XS_ALL; - *data = xs_read(f, size); - fclose(f); + if (stat(fn, &sb) == 0 && sb.st_mode & S_IFMT == S_IFREG) { + if ((f = fopen(fn, "rb")) != NULL) { + *size = XS_ALL; + *data = xs_read(f, size); + fclose(f); - status = HTTP_STATUS_OK; + status = HTTP_STATUS_OK; + } } } |