summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sfx2/source/appl/impldde.cxx11
1 files changed, 8 insertions, 3 deletions
diff --git a/sfx2/source/appl/impldde.cxx b/sfx2/source/appl/impldde.cxx
index 501346addc9c..3bb38bad8b9c 100644
--- a/sfx2/source/appl/impldde.cxx
+++ b/sfx2/source/appl/impldde.cxx
@@ -243,9 +243,14 @@ bool SvDDEObject::Connect( SvBaseLink * pSvLink )
}
#if defined(WNT)
-
- // Server not up, try once more to start it.
- if( !bInWinExec )
+ bool bForbidden = bInWinExec;
+ // TODO: also check the security level
+ static const char* aBadServers[] = { "cmd" };
+ for (size_t i = 0; i < sizeof(aBadServers)/sizeof(*aBadServers); ++i)
+ bForbidden |= sServer.equalsAscii(aBadServers[i]);
+
+ // try to start the DDE server if it is not there
+ if( !bForbidden )
{
OStringBuffer aCmdLine(OUStringToOString(sServer, RTL_TEXTENCODING_ASCII_US));
aCmdLine.append(".exe ");