Properly decompose vnd.sun.star.pkg URL

Desktop / LibreOffice - Stephan Bergmann [redhat.com] - 4 June 2018 18:28 EDT

When the URL encoded in the vnd.sun.star.pkg URL's authority contains a "@" (e.g., because it is a file URL denoting a pathname containging a "@" in one of the segments), that "@" need not be encoded (cf. the grammar at the top of tools/source/fsys/urlobj.cxx) and INetURLObject::GetHost would only return the part following the "@".

When constructing sBaseURI in ODatabaseContext::loadObjectFromURL (dbaccess/source/core/dataaccess/databasecontext.cxx), the path part shall obviously not be decoded (but which the original code erroneously did). However, when obtaining sStreamRelPath in ODBFilter::implImport (dbaccess/source/filter/xml/xmlfilter.cxx), it isn't clear to me whether the path should be decoded, so I left that in (and added a TODO).

(Caused `make CppunitTest_sw_uiwriter CPPUNIT_TEST_NAME=SwUiWriterTest::testEmbeddedDataSource` to fail when SRCDIR is such a pathname containing a "@" in one of the segments.)

Change-Id: I6ffd842f3f3d37d2682e7cf14399fb3dbfa0a2aa Reviewed-on: https://gerrit.libreoffice.org/55286

e310ac4ab942 Properly decompose vnd.sun.star.pkg URL
.../source/core/dataaccess/databasecontext.cxx | 24 +++++++++++--
dbaccess/source/filter/xml/xmlfilter.cxx | 40 ++++++++++++++++++----
2 files changed, 56 insertions(+), 8 deletions(-)

Upstream: cgit.freedesktop.org


  • Share