configure.ac                            |    2 +-
 scripting/source/pyprov/pythonscript.py |   30 ++++++++++++++++++++++++++++--
 2 files changed, 29 insertions(+), 3 deletions(-)

New commits:
commit 312ef29bbecdab4d29709aebc24e6428e6c2b059
Author:     Andras Timar <andras.ti...@collabora.com>
AuthorDate: Mon Oct 22 00:00:24 2018 -0700
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Mon Oct 22 00:00:24 2018 -0700

    Bump version to 5.0-46
    
    Change-Id: Idc22b8308e71a0a5eb37d009f343f8abae320994

diff --git a/configure.ac b/configure.ac
index 121fe43e17f6..b3ca7b6863c2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ dnl in order to create a configure script.
 # several non-alphanumeric characters, those are split off and used only for 
the
 # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no 
idea.
 
-AC_INIT([Collabora Office],[5.0.10.45],[],[],[https://CollaboraOffice.com/])
+AC_INIT([Collabora Office],[5.0.10.46],[],[],[https://CollaboraOffice.com/])
 
 AC_PREREQ([2.59])
 
commit 90977dafd1c818af5737d9d1150de96df76f2ca1
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Thu Oct 18 20:39:23 2018 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Sun Oct 21 23:59:13 2018 -0700

    keep pyuno script processing below base uri
    
    Reviewed-on: https://gerrit.libreoffice.org/61969
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>
    (cherry picked from commit b1c85cdb37a47998f8ab135fbc96f186334b171c)
    (cherry picked from commit a9d81dd30d809b9c5ce2d3e4752039f19be70494)
    
    Change-Id: Icc13fb7193fb1e7c50e0df286161a10b4ed636c7

diff --git a/scripting/source/pyprov/pythonscript.py 
b/scripting/source/pyprov/pythonscript.py
index 03f0cdeae7c8..24e28ec19535 100644
--- a/scripting/source/pyprov/pythonscript.py
+++ b/scripting/source/pyprov/pythonscript.py
@@ -23,6 +23,7 @@ import os
 import imp
 import time
 import ast
+from com.sun.star.uri.RelativeUriExcessParentSegments import RETAIN
 
 try:
     unicode
@@ -210,8 +211,33 @@ class MyUriHelper:
     
     def scriptURI2StorageUri( self, scriptURI ):
         try:
-            myUri = self.m_uriRefFac.parse(scriptURI)
-            ret = self.m_baseUri + "/" + myUri.getName().replace( "|", "/" )
+            # base path to the python script location
+            sBaseUri = self.m_baseUri + "/"
+            xBaseUri = self.m_uriRefFac.parse(sBaseUri)
+
+            # path to the .py file + "$functionname, arguments, etc
+            xStorageUri = self.m_uriRefFac.parse(scriptURI)
+            sStorageUri = xStorageUri.getName().replace( "|", "/" );
+
+            # path to the .py file, relative to the base
+            sFileUri = sStorageUri[0:sStorageUri.find("$")]
+            xFileUri = self.m_uriRefFac.parse(sFileUri)
+            if not xFileUri:
+                message = "pythonscript: invalid relative uri '" + sFileUri+ 
"'"
+                log.debug( message )
+                raise RuntimeException( message )
+
+            # absolute path to the .py file
+            xAbsScriptUri = self.m_uriRefFac.makeAbsolute(xBaseUri, xFileUri, 
True, RETAIN)
+            sAbsScriptUri = xAbsScriptUri.getUriReference()
+
+            # ensure py file is under the base path
+            if not sAbsScriptUri.startswith(sBaseUri):
+                message = "pythonscript: storage uri '" + sAbsScriptUri + "' 
not in base uri '" + self.m_baseUri + "'"
+                log.debug( message )
+                raise RuntimeException( message )
+
+            ret = sBaseUri + sStorageUri
             log.debug( "converting scriptURI="+scriptURI + " to storageURI=" + 
ret )
             return ret
         except UnoException as e:
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to