summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/qa/cppunit/test_urlobj.cxx4
-rw-r--r--tools/source/fsys/urlobj.cxx3
2 files changed, 4 insertions, 3 deletions
diff --git a/tools/qa/cppunit/test_urlobj.cxx b/tools/qa/cppunit/test_urlobj.cxx
index 404f5c5a6ed1..fb0c96f846a5 100644
--- a/tools/qa/cppunit/test_urlobj.cxx
+++ b/tools/qa/cppunit/test_urlobj.cxx
@@ -96,9 +96,9 @@ namespace tools_urlobj
CPPUNIT_ASSERT_EQUAL(OUString("/"), url.GetURLPath());
}
{
- // This is an invalid http URL per RFC 2616:
+ // This is a valid http URL per RFC 7230:
INetURLObject url(u"http://example.com?query");
- CPPUNIT_ASSERT(url.HasError());
+ CPPUNIT_ASSERT(!url.HasError());
}
{
INetURLObject url(u"http://example.com#fragment");
diff --git a/tools/source/fsys/urlobj.cxx b/tools/source/fsys/urlobj.cxx
index 764bb28ef623..417618acbc94 100644
--- a/tools/source/fsys/urlobj.cxx
+++ b/tools/source/fsys/urlobj.cxx
@@ -2985,7 +2985,8 @@ bool INetURLObject::parsePath(INetProtocol eScheme,
case INetProtocol::Https:
case INetProtocol::Smb:
case INetProtocol::Cmis:
- if (pPos < pEnd && *pPos != '/' && *pPos != nFragmentDelimiter)
+ if (pPos < pEnd && *pPos != '/' && *pPos != nQueryDelimiter
+ && *pPos != nFragmentDelimiter)
goto failed;
while (pPos < pEnd && *pPos != nQueryDelimiter
&& *pPos != nFragmentDelimiter)