Stefan Beller <sbeller@xxxxxxxxxx> writes: > +static void strip_url_ending(char *url, size_t *_len) > +{ > + int check_url_stripping = 1; > + size_t len = _len ? *_len : strlen(url); > + > + while (check_url_stripping) { > + check_url_stripping = 0; > + if (is_dir_sep(url[len-2]) && url[len-1] == '.') { This is "strip /. at the end" it seems. Does anything in the loop control guarantees 2 <= len at this point? > + url[len-2] = '\0'; > + len -= 2; > + check_url_stripping = 1; > + } > + > + if (is_dir_sep(url[len-1])) { This is "strip / at the end" it seems. Does anything in the loop control guarantees 1 <= len at this point? > + url[len-1] = '\0'; > + len--; > + check_url_stripping = 1; > + } > + }