On Mon, Oct 17, 2016 at 3:49 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > 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? Oh, thanks for pointing that out. I thought about that and missed to add it. I'll reroll with the length check once we hear back from Windows folks, that this is a viable strategy for them, too. Thanks, Stefan > >> + 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; >> + } >> + }