|
|
@@ -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;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|