From 050af956667b234d4e2e594a44371cde541baf95 Mon Sep 17 00:00:00 2001 From: chrysn Date: Fri, 3 Apr 2020 15:22:13 +0200 Subject: [PATCH] uri_parser: Fix relative recognition Relative refernces with colons in their names can not be told by their first character alone. --- sys/uri_parser/uri_parser.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sys/uri_parser/uri_parser.c b/sys/uri_parser/uri_parser.c index 228bc6d058..0a3c6ef43e 100644 --- a/sys/uri_parser/uri_parser.c +++ b/sys/uri_parser/uri_parser.c @@ -218,6 +218,17 @@ bool uri_parser_is_absolute(const char *uri, size_t uri_len) /* relative */ return false; } + for (int i = 0; &uri[i] < colon; ++i) { + if (!(((uri[i] >= 'A') && (uri[i] <= 'Z')) || + ((uri[i] >= 'a') && (uri[i] <= 'z')) || + ((uri[i] >= '0') && (uri[i] <= '9')) || + (uri[i] == '+') || + (uri[i] == '-') || + (uri[i] == '.'))) { + /* relative */ + return false; + } + } /* absolute */ return true;