summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-office/openoffice/files/2.1.0/ooo-build-2.1.6-hyperlinks-quotes.diff')
-rw-r--r--app-office/openoffice/files/2.1.0/ooo-build-2.1.6-hyperlinks-quotes.diff382
1 files changed, 382 insertions, 0 deletions
diff --git a/app-office/openoffice/files/2.1.0/ooo-build-2.1.6-hyperlinks-quotes.diff b/app-office/openoffice/files/2.1.0/ooo-build-2.1.6-hyperlinks-quotes.diff
new file mode 100644
index 000000000000..0a21ab51ab03
--- /dev/null
+++ b/app-office/openoffice/files/2.1.0/ooo-build-2.1.6-hyperlinks-quotes.diff
@@ -0,0 +1,382 @@
+--- patches/src680/apply
++++ patches/src680/apply
+@@ -400,6 +400,10 @@
+ # silly leaks around the place
+ leak-sal-file.diff, i#49510, michael
+
++[ Fixes ]
++# Security issue with hyper links, CVE-2007-0239, n#241636
++hyperlinks-2.1.diff
++cws-obr04-quotes.diff
+
+ [ QuickStarter ]
+ # External splash screen implementation / 2nd time accelerator
+--- patches/src680/cws-obr04-quotes.diff
++++ patches/src680/cws-obr04-quotes.diff
+@@ -0,0 +1,123 @@
++Index: shell/source/unix/misc/cde-open-url.sh
++===================================================================
++RCS file: /cvs/gsl/shell/source/unix/misc/cde-open-url.sh,v
++retrieving revision 1.3
++retrieving revision 1.3.120.1
++diff -u -p -u -p -r1.3 -r1.3.120.1
++--- shell/source/unix/misc/cde-open-url.sh 27 Sep 2005 12:54:22 -0000 1.3
+++++ shell/source/unix/misc/cde-open-url.sh 20 Dec 2006 15:03:24 -0000 1.3.120.1
++@@ -58,5 +58,5 @@ else
++ fi
++
++ if [ -z "$TMPFILE" ]; then exit 1; fi
++-( echo $1 > "$TMPFILE"; dtaction Open "$TMPFILE"; rm -f "$TMPFILE" ) &
+++( echo "$1" > "$TMPFILE"; dtaction Open "$TMPFILE"; rm -f "$TMPFILE" ) &
++ exit 0
++Index: shell/source/unix/misc/gnome-open-url.sh
++===================================================================
++RCS file: /cvs/gsl/shell/source/unix/misc/gnome-open-url.sh,v
++retrieving revision 1.3
++retrieving revision 1.3.166.1
++diff -u -p -u -p -r1.3 -r1.3.166.1
++--- shell/source/unix/misc/gnome-open-url.sh 13 May 2005 07:31:07 -0000 1.3
+++++ shell/source/unix/misc/gnome-open-url.sh 20 Dec 2006 15:03:25 -0000 1.3.166.1
++@@ -50,6 +50,6 @@ case `uname -s` in
++ esac
++
++ # use gnome-open utility coming with libgnome if available
++-gnome-open $1 2>/dev/null || "$0.bin" $1
+++gnome-open "$1" 2>/dev/null || "$0.bin" $1
++
++ exit 0
++Index: shell/source/unix/misc/kde-open-url.sh
++===================================================================
++RCS file: /cvs/gsl/shell/source/unix/misc/kde-open-url.sh,v
++retrieving revision 1.2
++retrieving revision 1.2.254.1
++diff -u -p -u -p -r1.2 -r1.2.254.1
++--- shell/source/unix/misc/kde-open-url.sh 10 May 2004 13:08:06 -0000 1.2
+++++ shell/source/unix/misc/kde-open-url.sh 20 Dec 2006 15:03:25 -0000 1.2.254.1
++@@ -51,9 +51,9 @@ esac
++
++ # special handling for mailto: uris
++ if echo $1 | grep '^mailto:' > /dev/null; then
++- kmailservice $1 &
+++ kmailservice "$1" &
++ else
++- kfmclient openURL $1 &
+++ kfmclient openURL "$1" &
++ fi
++
++ exit 0
++Index: shell/source/unix/misc/open-url.sh
++===================================================================
++RCS file: /cvs/gsl/shell/source/unix/misc/open-url.sh,v
++retrieving revision 1.3
++retrieving revision 1.3.120.2
++diff -u -p -u -p -r1.3 -r1.3.120.2
++--- shell/source/unix/misc/open-url.sh 27 Sep 2005 12:54:42 -0000 1.3
+++++ shell/source/unix/misc/open-url.sh 20 Dec 2006 15:03:25 -0000 1.3.120.2
++@@ -96,15 +96,15 @@ esac
++ # special handling for mailto: uris
++ if echo $1 | grep '^mailto:' > /dev/null; then
++ # check $MAILER variable
++- if [ $MAILER ]; then
++- $MAILER $1 &
+++ if [ ! -z "$MAILER" ]; then
+++ $MAILER "$1" &
++ exit 0
++ else
++ # mozilla derivates may need -remote semantics
++ for i in thunderbird mozilla netscape; do
++ mailer=`which $i`
++ if [ ! -z "$mailer" ]; then
++- run_mozilla $mailer $1
+++ run_mozilla "$mailer" "$1"
++ exit 0
++ fi
++ done
++@@ -113,15 +113,15 @@ if echo $1 | grep '^mailto:' > /dev/null
++ fi
++ else
++ # check $BROWSER variable
++- if [ $BROWSER ]; then
++- $BROWSER $1 &
+++ if [ ! -z "$BROWSER" ]; then
+++ $BROWSER "$1" &
++ exit 0
++ else
++ # mozilla derivates may need -remote semantics
++ for i in firefox mozilla netscape; do
++ browser=`which $i`
++ if [ ! -z "$browser" ]; then
++- run_mozilla $browser $1
+++ run_mozilla "$browser" "$1"
++ exit 0
++ fi
++ done
++Index: scp2/source/ooo/file_ooo.scp
++===================================================================
++RCS file: /cvs/installation/scp2/source/ooo/file_ooo.scp,v
++retrieving revision 1.175
++retrieving revision 1.175.10.1
++diff -u -p -u -p -r1.175 -r1.175.10.1
++--- scp2/source/ooo/file_ooo.scp 13 Dec 2006 15:14:08 -0000 1.175
+++++ scp2/source/ooo/file_ooo.scp 12 Jan 2007 08:06:00 -0000 1.175.10.1
++@@ -369,7 +369,7 @@ File gid_File_Bin_Gnome_Open_Url
++ BIN_FILE_BODY;
++ Dir = gid_Dir_Program;
++ Name = "gnome-open-url";
++- Styles = (PACKED);
+++ Styles = (PACKED, PATCH);
++ End
++
++ File gid_File_Bin_Gnome_Open_Url_Bin
++@@ -383,7 +383,7 @@ File gid_File_Bin_Kde_Open_Url
++ BIN_FILE_BODY;
++ Dir = gid_Dir_Program;
++ Name = "kde-open-url";
++- Styles = (PACKED);
+++ Styles = (PACKED, PATCH);
++ End
++
++ File gid_File_Bin_Cde_Open_Url
+--- patches/src680/hyperlinks-2.1.diff
++++ patches/src680/hyperlinks-2.1.diff
+@@ -0,0 +1,240 @@
++--- shell/source/unix/exec/shellexec.hxx.old 2005-09-07 21:54:18.000000000 +0200
+++++ shell/source/unix/exec/shellexec.hxx 2007-02-01 18:41:49.000000000 +0100
++@@ -44,6 +44,10 @@
++ #include <osl/mutex.hxx>
++ #endif
++
+++#ifndef _RTL_USTRBUF_HXX_
+++#include <rtl/ustrbuf.hxx>
+++#endif
+++
++ #ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
++ #include <com/sun/star/lang/XServiceInfo.hpp>
++ #endif
++@@ -65,6 +69,8 @@
++ ::rtl::OString m_aDesktopEnvironment;
++ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >
++ m_xContext;
+++
+++ sal_Int32 SAL_CALL tryExecuteProcess( const rtl::OUString& aCommand, const rtl::OUString& aParameter );
++
++ public:
++ ShellExec(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& xContext);
++--- shell/source/unix/exec/shellexec.cxx.old 2006-09-17 03:41:54.000000000 +0200
+++++ shell/source/unix/exec/shellexec.cxx 2007-02-02 16:03:56.000000000 +0100
++@@ -56,10 +56,6 @@
++ #include <rtl/strbuf.hxx>
++ #endif
++
++-#ifndef _RTL_USTRBUF_HXX_
++-#include <rtl/ustrbuf.hxx>
++-#endif
++-
++ #ifndef _RTL_URI_H_
++ #include <rtl/uri.hxx>
++ #endif
++@@ -124,6 +120,47 @@
++ }
++ }
++
+++//------------------------------------------------------------------------
+++// helper method
+++//------------------------------------------------------------------------
+++
+++sal_Int32 SAL_CALL ShellExec::tryExecuteProcess( const OUString& aCommand, const OUString& aParameter )
+++{
+++ OUString aCommandURL;
+++ osl::FileBase::getFileURLFromSystemPath(aCommand, aCommandURL);
+++
+++ rtl_uString *args[] = { aCommandURL.pData, aParameter.pData };
+++ oslProcess pProcess = NULL;
+++ sal_Int32 rc = 1;
+++
+++ oslProcessError error = osl_executeProcess(
+++ args[0], /* ustrImageName */
+++ args+1, /* ustrArguments[] */
+++ 1, /* nArguments */
+++ osl_Process_WAIT | osl_Process_SEARCHPATH | osl_Process_NORMAL, /* Options */
+++ NULL, /* Security */
+++ NULL, /* ustrDirectory */
+++ NULL, /* ustrEnvironments[] */
+++ 0, /* nEnvironmentVars */
+++ &pProcess); /* pProcess*/
+++
+++ if (error == osl_Process_E_None)
+++ {
+++ error = osl_joinProcess( pProcess );
+++ if (error==osl_Process_E_None)
+++ {
+++ oslProcessInfo aProcessInfo;
+++ aProcessInfo.Size = sizeof(aProcessInfo);
+++ error = osl_getProcessInfo( pProcess, osl_Process_EXITCODE, &aProcessInfo );
+++ if (error==osl_Process_E_None)
+++ rc = aProcessInfo.Code;
+++ }
+++ }
+++ osl_freeProcessHandle(pProcess);
+++
+++ return rc;
+++}
+++
++ //-----------------------------------------------------------------------------------------
++ //
++ //-----------------------------------------------------------------------------------------
++@@ -157,23 +194,28 @@
++ void SAL_CALL ShellExec::execute( const OUString& aCommand, const OUString& aParameter, sal_Int32 /*nFlags*/ )
++ throw (IllegalArgumentException, SystemShellExecuteException, RuntimeException)
++ {
++- OStringBuffer aBuffer, aLaunchBuffer;
+++ OStringBuffer aOfficeLauncher;
+++ OUString aURL;
+++
+++ sal_Bool bTryDesktopLauncher = sal_False;
++
++ // DESKTOP_LAUNCH, see http://freedesktop.org/pipermail/xdg/2004-August/004489.html
++- static const char *pDesktopLaunch = getenv( "DESKTOP_LAUNCH" );
+++ static const char *pDesktopLauncher = getenv( "DESKTOP_LAUNCH" );
++
++ // Check wether aCommand contains a document url or not
++ sal_Int32 nIndex = aCommand.indexOf( OUString( RTL_CONSTASCII_USTRINGPARAM(":/") ) );
++
++ if( nIndex > 0 || 0 == aCommand.compareToAscii("mailto:", 7) )
++ {
++- // It seems to be a url ..
+++ // It seems to be an url ..
+++ if ( pDesktopLauncher && *pDesktopLauncher )
+++ bTryDesktopLauncher = sal_True;
+++
++ // We need to re-encode file urls because osl_getFileURLFromSystemPath converts
++ // to UTF-8 before encoding non ascii characters, which is not what other apps
++ // expect.
++- OUString aURL(
++- com::sun::star::uri::ExternalUriReferenceTranslator::create(
++- m_xContext)->translateToExternal(aCommand));
+++ aURL = com::sun::star::uri::ExternalUriReferenceTranslator::create(
+++ m_xContext)->translateToExternal(aCommand);
++ if ( aURL.getLength() == 0 && aCommand.getLength() != 0 )
++ {
++ throw RuntimeException(
++@@ -183,15 +225,17 @@
++ + aCommand),
++ static_cast< cppu::OWeakObject * >(this));
++ }
++-
+++
+++ // URL needs furher changes depending on the launcher
+++ // FIXME: Should we try pDesktopLauncher before we modify the URL?
++ #ifdef MACOSX
++- aBuffer.append("open");
+++ aOfficeLauncher.append("open");
++ #else
++ OUString aProgramURL;
++ if ( osl_Process_E_None != osl_getExecutableFile(&aProgramURL.pData) )
++ {
++ throw SystemShellExecuteException(
++- OUString(RTL_CONSTASCII_USTRINGPARAM("Cound not determine executable path")),
+++ OUString(RTL_CONSTASCII_USTRINGPARAM("Cound not determine executable path")),
++ static_cast < XSystemShellExecute * > (this), ENOENT );
++ }
++
++@@ -199,7 +243,7 @@
++ if ( FileBase::E_None != FileBase::getSystemPathFromFileURL(aProgramURL, aProgram))
++ {
++ throw SystemShellExecuteException(
++- OUString(RTL_CONSTASCII_USTRINGPARAM("Cound not convert executable path")),
+++ OUString(RTL_CONSTASCII_USTRINGPARAM("Cound not convert executable path")),
++ static_cast < XSystemShellExecute * > (this), ENOENT );
++ }
++
++@@ -208,7 +252,7 @@
++ OString aTmp = OUStringToOString(aProgram, osl_getThreadTextEncoding());
++ nIndex = aTmp.lastIndexOf('/');
++ if (nIndex > 0)
++- aBuffer.append(aTmp.copy(0, nIndex+1));
+++ aOfficeLauncher.append(aTmp.copy(0, nIndex+1));
++
++ // Respect the desktop environment - if there is an executable named
++ // <desktop-environement-is>-open-url, pass the url to this one instead
++@@ -216,17 +260,17 @@
++ if ( m_aDesktopEnvironment.getLength() > 0 )
++ {
++ OString aDesktopEnvironment(m_aDesktopEnvironment.toAsciiLowerCase());
++- OStringBuffer aCopy(aBuffer);
+++ OStringBuffer aCopy(aOfficeLauncher);
++
++ aCopy.append(aDesktopEnvironment);
++ aCopy.append("-open-url");
++
++ if ( 0 == access( aCopy.getStr(), X_OK) )
++ {
++- aBuffer.append(aDesktopEnvironment);
++- aBuffer.append("-");
+++ aOfficeLauncher.append(aDesktopEnvironment);
+++ aOfficeLauncher.append("-");
++
++- /* CDE requires file urls to be decoded */
+++ /* CDE requires file urls to be decoded */
++ if ( m_aDesktopEnvironment.equals("CDE") && 0 == aURL.compareToAscii("file://", 7) )
++ {
++ aURL = rtl::Uri::decode(aURL, rtl_UriDecodeWithCharset, osl_getThreadTextEncoding());
++@@ -234,44 +278,30 @@
++ }
++ }
++
++- aBuffer.append("open-url");
+++ aOfficeLauncher.append("open-url");
++ #endif
++- aBuffer.append(" \'");
++- aBuffer.append(OUStringToOString(aURL, osl_getThreadTextEncoding()));
++- aBuffer.append("\'");
++-
++- if ( pDesktopLaunch && *pDesktopLaunch )
++- {
++- aLaunchBuffer.append( pDesktopLaunch );
++- aLaunchBuffer.append( " \'" );
++- aLaunchBuffer.append(OUStringToOString(aURL, osl_getThreadTextEncoding()));
++- aLaunchBuffer.append( "\'" );
++- }
++ } else {
++- aBuffer.append(OUStringToOString(aCommand, osl_getThreadTextEncoding()));
++- aBuffer.append(" ");
++- aBuffer.append(OUStringToOString(aParameter, osl_getThreadTextEncoding()));
+++ aOfficeLauncher.append(OUStringToOString(aCommand, osl_getThreadTextEncoding()));
+++ aURL = aParameter;
++ }
++
++- // Prefer DESKTOP_LAUNCH when available
++- if ( aLaunchBuffer.getLength() > 0 )
+++ if ( bTryDesktopLauncher )
++ {
++- FILE *pLaunch = popen( aLaunchBuffer.makeStringAndClear().getStr(), "w" );
++- if ( pLaunch != NULL )
++- {
++- if ( 0 == pclose( pLaunch ) )
++- return;
++- }
++- // Failed, do not try DESKTOP_LAUNCH any more
++- pDesktopLaunch = NULL;
+++ sal_Int32 nErr = tryExecuteProcess( OUString::createFromAscii(pDesktopLauncher), aURL);
+++ if ( nErr )
+++ // Failed, do not try DESKTOP_LAUNCH any more
+++ pDesktopLauncher = NULL;
+++ else
+++ return;
++ }
++
++- OString cmd = aBuffer.makeStringAndClear();
++- if ( 0 != pclose(popen(cmd.getStr(), "w")) )
+++ OUString aOfficeLauncherOUStr = ::rtl::OStringToOUString(aOfficeLauncher.makeStringAndClear(), osl_getThreadTextEncoding());
+++ sal_Int32 nErr = tryExecuteProcess( aOfficeLauncherOUStr, aURL);
+++ if ( nErr )
++ {
++- int nerr = errno;
++- throw SystemShellExecuteException(OUString::createFromAscii( strerror( nerr ) ),
++- static_cast < XSystemShellExecute * > (this), nerr );
+++ OUString msg = OUString::createFromAscii( "Failed to execute ") + aOfficeLauncherOUStr;
+++ throw SystemShellExecuteException(msg,
+++ static_cast < XSystemShellExecute * > (this), nErr );
++ }
++ }
++