--- a/dav/utils.c Mon Aug 12 19:50:14 2013 +0200 +++ b/dav/utils.c Tue Aug 13 11:19:22 2013 +0200 @@ -70,18 +70,26 @@ char* util_url_path(char *url) { char *path = NULL; + size_t len = strlen(url); int slashcount = 0; + int slmax; + if(len > 7 && !strncasecmp(url, "http://", 7)) { + slmax = 3; + } else if(len > 8 && !strncasecmp(url, "https://", 8)) { + slmax = 3; + } else { + slmax = 1; + } char c; - int i = 0; - while((c = url[i]) != 0) { + for(int i=0;i<len;i++) { + c = url[i]; if(c == '/') { slashcount++; - if(slashcount == 3) { + if(slashcount == slmax) { path = url + i; break; } } - i++; } return path; }