ucb/source/ucp/webdav-curl/CurlSession.cxx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
New commits: commit 97af6ccd95b9548723c2baa4b051c049c47bc8ea Author: Michael Stahl <michael.st...@allotropia.de> AuthorDate: Wed Nov 24 19:52:10 2021 +0100 Commit: Michael Stahl <michael.st...@allotropia.de> CommitDate: Thu Nov 25 18:53:05 2021 +0100 ucb: webdav-curl: Sharepoint returns redirect urls that curl can't parse Encode them just like in WebDAVResponseParser. Change-Id: I7f0ee1d42df356fdd585d1f6e0f39e4094701a2a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125787 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.st...@allotropia.de> diff --git a/ucb/source/ucp/webdav-curl/CurlSession.cxx b/ucb/source/ucp/webdav-curl/CurlSession.cxx index 509c7bc24629..1c9da506df8e 100644 --- a/ucb/source/ucp/webdav-curl/CurlSession.cxx +++ b/ucb/source/ucp/webdav-curl/CurlSession.cxx @@ -1012,10 +1012,14 @@ auto CurlProcessor::ProcessRequestImpl( assert(rc == CURLE_OK); if (pRedirectURL) { - throw DAVException(DAVException::DAV_HTTP_REDIRECT, - pRedirectURL ? OUString(pRedirectURL, strlen(pRedirectURL), - RTL_TEXTENCODING_UTF8) - : OUString()); + // Sharepoint 2016 workaround: contains unencoded U+0020 + OUString const redirectURL(::rtl::Uri::encode( + pRedirectURL + ? OUString(pRedirectURL, strlen(pRedirectURL), RTL_TEXTENCODING_UTF8) + : OUString(), + rtl_UriCharClassUric, rtl_UriEncodeKeepEscapes, RTL_TEXTENCODING_UTF8)); + + throw DAVException(DAVException::DAV_HTTP_REDIRECT, redirectURL); } [[fallthrough]]; }