From 32854b79c73b278bf33eb5123abf1c36abdc7c01 Mon Sep 17 00:00:00 2001 From: Karmanyaah Malhotra Date: Mon, 21 Jun 2021 03:53:06 -0400 Subject: [PATCH] Check index before serving autoindex if a directory is being served. --- src/serve.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/serve.c b/src/serve.c index 6ad7934..bcbef5c 100644 --- a/src/serve.c +++ b/src/serve.c @@ -526,15 +526,16 @@ serve_request(struct gmnisrv_client *client) } if (S_ISDIR(st.st_mode)) { - if (route->autoindex) { - serve_autoindex(client, real_path); - free(url_path); - return; - } else { + strcpy(temp_path, real_path); strncat(real_path, route->index ? route->index : "index.gmi", sizeof(real_path) - 1); if (stat(real_path, &st) != 0) { + if (route->autoindex) { + serve_autoindex(client, temp_path); + free(url_path); + return; + } server_error("CGI path %s has no index", client_path); client_submit_response(client, @@ -542,7 +543,6 @@ serve_request(struct gmnisrv_client *client) "Not found", NULL); return; } - } } else if (S_ISLNK(st.st_mode)) { ++nlinks; if (nlinks > 3) {