You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by hd...@apache.org on 2014/07/09 17:51:49 UTC

svn commit: r1609208 - /openoffice/trunk/main/sfx2/source/appl/impldde.cxx

Author: hdu
Date: Wed Jul  9 15:51:49 2014
New Revision: 1609208

URL: http://svn.apache.org/r1609208
Log:
#i125226# some macro preferences are directly applicable to DDE servers

Modified:
    openoffice/trunk/main/sfx2/source/appl/impldde.cxx

Modified: openoffice/trunk/main/sfx2/source/appl/impldde.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/appl/impldde.cxx?rev=1609208&r1=1609207&r2=1609208&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/source/appl/impldde.cxx (original)
+++ openoffice/trunk/main/sfx2/source/appl/impldde.cxx Wed Jul  9 15:51:49 2014
@@ -49,6 +49,8 @@
 #include <svl/svdde.hxx>
 #include <sot/formats.hxx>
 
+#include <unotools/securityoptions.hxx>
+
 #define DDELINK_COLD		0
 #define DDELINK_HOT 		1
 
@@ -255,13 +257,15 @@ sal_Bool SvDDEObject::Connect( SvBaseLin
 		}
 
 #if defined(WNT)
-		bool bForbidden = bInWinExec;
-		// TODO: also check the security level
-		static const char* aBadServers[] = { "cmd" };
+		// check the suitability of starting the DDE server
+		const SvtSecurityOptions aSecOpts;
+		bool bForbidden = (aSecOpts.GetMacroSecurityLevel() != eNEVER_EXECUTE);
+		bForbidden |= (bInWinExec != sal_False);
+		static const char* aBadServers[] = { "cmd", "rundll32" };
 		for( int i = 0; i < sizeof(aBadServers)/sizeof(*aBadServers); ++i)
-			bForbidden |= (sServer.CompareIgnoreCaseToAscii( aBadServers[i]) == COMPARE_EQUAL);
+			bForbidden |= (sServer.CompareIgnoreCaseToAscii( aBadServers[i]) == COMPARE_EQUAL );
 
-		// try to start the DDE server if it is not there
+		// try to start the DDE server if it is not there already
 		if( !bForbidden )
 		{
 			ByteString aCmdLine( sServer, RTL_TEXTENCODING_ASCII_US );