summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEyal Sawady <ecs@d2evs.net>2020-11-15 11:32:59 -0500
committerDrew DeVault <sir@cmpwn.com>2020-11-15 11:33:16 -0500
commitcb042d6263a0f6800b298373b24a64b407aaf2f0 (patch)
tree9442a6cd2b04c2f38f41ed7b8b1a6e1f4278a2f8
parent0646fd020c37362ecb25b4a5c01f984c5090166e (diff)
downloadgmnisrv-cb042d6263a0f6800b298373b24a64b407aaf2f0.tar.gz
gmnisrv-cb042d6263a0f6800b298373b24a64b407aaf2f0.tar.xz
gmnisrv-cb042d6263a0f6800b298373b24a64b407aaf2f0.zip
CGI: Don't hang on directory with no index
-rw-r--r--src/serve.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/serve.c b/src/serve.c
index 677b6a4..71f97c5 100644
--- a/src/serve.c
+++ b/src/serve.c
@@ -459,6 +459,14 @@ serve_request(struct gmnisrv_client *client)
strncat(real_path,
route->index ? route->index : "index.gmi",
sizeof(real_path) - 1);
+ if (stat(real_path, &st) != 0) {
+ server_error("CGI path %s has no index",
+ client_path);
+ client_submit_response(client,
+ GEMINI_STATUS_NOT_FOUND,
+ "Not found", NULL);
+ return;
+ }
}
} else if (S_ISLNK(st.st_mode)) {
++nlinks;