commit - e8cac16e03c5b86eebd6e50b267a3f0479bf3a81
commit + 3c19febb014ddc7d9afa1b517c108da4b3fda5dc
blob - d54dc62f3b6ccded34abc27df946988df324e38c
blob + 2f786bce62e15bbbebfdde9ea693ba0ef1964fd0
--- ChangeLog
+++ ChangeLog
+2020-11-06 Omar Polo <op@omarpolo.com>
+
+ * gmid.c (url_after_proto): ensure that the requested protocol is
+ “gemini” and not something else that’s long 6 bytes.
+
2020-11-06 Omar Polo <op@venera>
* gmid.1: added option to log to a file
blob - cda5b72ba0095337cbedd0d7bbeac93cbb45f206
blob + c8348a0fa50bb6a6a3c9f05881989b5b30c17cf5
--- gmid.c
+++ gmid.c
char *s;
const char *proto = "gemini";
const char *marker = "://";
+ size_t i;
+ /* a relative URL */
if ((s = strstr(url, marker)) == NULL)
return url;
- /* not a gemini:// URL */
-
- if (s - strlen(proto) < url)
+ if (s - strlen(proto) != url)
return NULL;
- /* TODO: */
- /* if (strcmp(s - strlen(proto), proto)) */
- /* return NULL; */
+
+ for (i = 0; proto[i] != '\0'; ++i)
+ if (url[i] != proto[i])
+ return NULL;
/* a valid gemini:// URL */
return s + strlen(marker);