From 16d48e4cd4edc15aa2ffe158d93248b5a57c3ea9 Mon Sep 17 00:00:00 2001 From: la_ninpre Date: Wed, 28 Jan 2026 12:23:56 +0300 Subject: data: don't try to read something that's not a regular file --- data.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'data.c') diff --git a/data.c b/data.c index 02686e1..85bc401 100644 --- a/data.c +++ b/data.c @@ -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; + } } } -- cgit