commit 16d48e4
la_ninpre
·
2026-01-28 09:23:56 +0000 UTC
parent 2f0f3d4
data: don't try to read something that's not a regular file
1 files changed,
+8,
-5
M
data.c
M
data.c
+8,
-5
1@@ -2665,14 +2665,17 @@ static int _load_raw_file(const char *fn, xs_val **data, int *size,
2 }
3 else {
4 /* newer or never downloaded; read the full file */
5+ struct stat sb;
6 FILE *f;
7
8- if ((f = fopen(fn, "rb")) != NULL) {
9- *size = XS_ALL;
10- *data = xs_read(f, size);
11- fclose(f);
12+ if (stat(fn, &sb) == 0 && sb.st_mode & S_IFMT == S_IFREG) {
13+ if ((f = fopen(fn, "rb")) != NULL) {
14+ *size = XS_ALL;
15+ *data = xs_read(f, size);
16+ fclose(f);
17
18- status = HTTP_STATUS_OK;
19+ status = HTTP_STATUS_OK;
20+ }
21 }
22 }
23