vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Fri Feb 5 23:50:29 2021 +0200| [2090c051abb8d3b15fd1824c394897eedda63c7f] | committer: Rémi Denis-Courmont
Revert "url: Remove duplicated path separators" (fixes #25374) This was just plain wrong. Multiple forward slashes does not generally have the same meaning as a single one. This notably broke some FTP and DLNA servers. This reverts commit 043988a2519f557856f14578b790da66283645fc. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2090c051abb8d3b15fd1824c394897eedda63c7f --- src/test/url.c | 20 -------------------- src/text/url.c | 21 --------------------- 2 files changed, 41 deletions(-) diff --git a/src/test/url.c b/src/test/url.c index 5f31047c2d..d2b4361169 100644 --- a/src/test/url.c +++ b/src/test/url.c @@ -164,16 +164,6 @@ static void test_rfc3986(const char *reference, const char *expected) test(vlc_uri_resolve_rfc3986_test, reference, expected); } -static char *vlc_uri_resolve_separators_test(const char *in) -{ - return vlc_uri_resolve("file:///a/b/c//d.ext", in); -} - -static void test_separators(const char *reference, const char *expected) -{ - test(vlc_uri_resolve_separators_test, reference, expected); -} - int main (void) { (void)setvbuf (stdout, NULL, _IONBF, 0); @@ -385,16 +375,6 @@ int main (void) for (size_t i = 0; i < ARRAY_SIZE(rfc3986_cases); i += 2) test_rfc3986(rfc3986_cases[i], rfc3986_cases[i + 1]); - static const char* separators_patterns[] = { - "../", "file:///a/b/", - "./", "file:///a/b/c/", - "../../../../../../../", "file:///", - "..///////////////", "file:///a/b/", - ".///////////////", "file:///a/b/c/", - "..//..//", "file:///a/", - }; - for (size_t i = 0; i < ARRAY_SIZE(separators_patterns); i += 2) - test_separators(separators_patterns[i], separators_patterns[i + 1]); /* Check that fixup does not mangle valid URIs */ static const char *valid_uris[] = diff --git a/src/text/url.c b/src/text/url.c index 9e5eb6cff7..0c15a9bcb7 100644 --- a/src/text/url.c +++ b/src/text/url.c @@ -407,26 +407,6 @@ static bool vlc_uri_path_validate(const char *str) return vlc_uri_component_validate(str, "/@:"); } -static void vlc_uri_fixup_duplicated_separators(char *str) -{ - if (str == NULL) - return; - char *input = str, *output = str; - while (*input) - { - assert(input >= output); - if (*input == '/') - { - *output++ = *input; - while (*input == '/') - input++; - } - else - *output++ = *input++; - } - *output = 0; -} - static int vlc_UrlParseInner(vlc_url_t *restrict url, const char *str) { url->psz_protocol = NULL; @@ -571,7 +551,6 @@ static int vlc_UrlParseInner(vlc_url_t *restrict url, const char *str) { url->psz_path = cur; } - vlc_uri_fixup_duplicated_separators(url->psz_path); return ret; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
