From 02a386b56818333a160b876cc9049341bdcb45b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Wagner?= Date: Thu, 5 Nov 2020 14:42:45 +0100 Subject: [PATCH] check if file served as cgi is executable if not, send a response 50 to the client fixes ~sircmpwn/gmni#47 --- src/serve.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/serve.c b/src/serve.c index 459901e..8f5a39f 100644 --- a/src/serve.c +++ b/src/serve.c @@ -457,6 +457,12 @@ serve_request(struct gmnisrv_client *client) assert(s != -1); strcpy(real_path, temp_path); } else if (S_ISREG(st.st_mode)) { + if (route->cgi && access(real_path, X_OK)) { + client_submit_response(client, + GEMINI_STATUS_PERMANENT_FAILURE, "Internal Server Error", NULL); + return; + } + break; } else { // Don't serve special files