From eb675ba4c8a68999f912fe581fd645233393e1bc Mon Sep 17 00:00:00 2001 From: "serge%netscape.com" Date: Tue, 25 Jun 2002 01:29:59 +0000 Subject: [PATCH] fix for #149336 Linux Flash crashes and causes stack curruption in NPP_New when swLiveconnect=TRUE, r=av/Roland.Mainz,sr=darin git-svn-id: svn://10.0.0.236/trunk@123974 18797224-902f-48f8-a5cc-f745e15eee43 --- .../plugin/base/src/ns4xPluginInstance.cpp | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/mozilla/modules/plugin/base/src/ns4xPluginInstance.cpp b/mozilla/modules/plugin/base/src/ns4xPluginInstance.cpp index 2fe6450b0fd..b065c7f4727 100644 --- a/mozilla/modules/plugin/base/src/ns4xPluginInstance.cpp +++ b/mozilla/modules/plugin/base/src/ns4xPluginInstance.cpp @@ -40,7 +40,7 @@ #include "prlog.h" #include "prmem.h" #include "nscore.h" - +#include "prenv.h" #include "ns4xPluginInstance.h" #include "ns4xPluginStreamListener.h" @@ -768,6 +768,40 @@ nsresult ns4xPluginInstance::InitializePlugin(nsIPluginInstancePeer* peer) peer->GetMode(&mode); peer->GetMIMEType(&mimetype); +#ifdef XP_UNIX + // hack swliveconnect argument for flash plugins on unix, + // because if it set flash corrupts the stack in NPP_NewProc call (bug 149336) + static const char flashMimeType[] = "application/x-shockwave-flash"; + static const char blockedParam[] = "swliveconnect"; + if (count && !PL_strcasecmp(mimetype, flashMimeType)) { + static int cachedDisableHack = 0; + if (!cachedDisableHack) { + if (PR_GetEnv("MOZILLA_PLUGIN_DISABLE_FLASH_SWLIVECONNECT_HACK")) + cachedDisableHack = -1; + else + cachedDisableHack = 1; + } + if (cachedDisableHack > 0) { + for (PRUint16 i=0; inewp, (char *)mimetype, &fNPP,