summaryrefslogtreecommitdiff
path: root/sc/source
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2019-06-14 21:53:18 +0200
committerAdolfo Jayme Barrientos <fitojb@ubuntu.com>2019-06-16 21:07:18 +0200
commited9cb51dfddf066b0b19681e86c42121aa9cce9c (patch)
tree8aa4d0665e779960cd050267bad680fc42bc8911 /sc/source
parentaf8266b4d371ffbc14609686259546642b167755 (diff)
Resolves: tdf#124251 do not treat internal "URI" as real path URI
Change-Id: I754704b0a979e8449b7ec799cbda58b14ab17098 Reviewed-on: https://gerrit.libreoffice.org/74067 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit ca08ec9292410c28713fd2d92920a7af09883e97) Reviewed-on: https://gerrit.libreoffice.org/74070 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Diffstat (limited to 'sc/source')
-rw-r--r--sc/source/core/data/global.cxx9
1 files changed, 8 insertions, 1 deletions
diff --git a/sc/source/core/data/global.cxx b/sc/source/core/data/global.cxx
index 0999082d9589..6a59a30e56b5 100644
--- a/sc/source/core/data/global.cxx
+++ b/sc/source/core/data/global.cxx
@@ -819,7 +819,14 @@ void ScGlobal::OpenURL(const OUString& rURL, const OUString& rTarget)
}
// Don't fiddle with fragments pointing into current document.
- if (!aUrlName.startsWith("#"))
+ // Also don't mess around with a vnd.sun.star.script or service or other
+ // internal "URI".
+ if (!aUrlName.startsWith("#")
+ && !aUrlName.startsWithIgnoreAsciiCase("vnd.sun.star.script:")
+ && !aUrlName.startsWithIgnoreAsciiCase("macro:")
+ && !aUrlName.startsWithIgnoreAsciiCase("slot:")
+ && !aUrlName.startsWithIgnoreAsciiCase("service:")
+ && !aUrlName.startsWithIgnoreAsciiCase(".uno:"))
{
// Any relative reference would fail with "not an absolute URL"
// error, try to construct an absolute URI with the path relative