print a message if a protocol is not supported - gopherproxy-c - Gopher HTTP proxy in C (CGI)
(HTM) git clone git://git.codemadness.org/gopherproxy-c
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 78efc56f91b0956fe6e2dcc7919a4dcd64dfe66a
(DIR) parent b4fcf2516500e0d3979721cae7d91f430e72fa41
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Mon, 16 May 2022 14:46:40 +0200
print a message if a protocol is not supported
This would not trigger because URIs are prefixed with gopher:// otherwise.
Reported by parazyd by testing gophers:// which is not supported (yet).
Diffstat:
M gopherproxy.c | 3 +++
1 file changed, 3 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/gopherproxy.c b/gopherproxy.c
@@ -611,6 +611,8 @@ main(void)
r = snprintf(fulluri, sizeof(fulluri), "%s", query);
} else {
showuri = query;
+ if (uri_hasscheme(query))
+ die(400, "Invalid protocol: only gopher is supported\n");
r = snprintf(fulluri, sizeof(fulluri), "gopher://%s", query);
}
if (r < 0 || (size_t)r >= sizeof(fulluri))
@@ -619,6 +621,7 @@ main(void)
if (!uri_hasscheme(fulluri) ||
uri_parse(fulluri, &u) == -1)
die(400, "Invalid or unsupported URI: %s\n", showuri);
+
if (strcmp(u.proto, "gopher://"))
die(400, "Invalid protocol: only gopher is supported\n");
if (u.host[0] == '\0')