Bug 555894 - Don't use static strings when setting environment variables [r=vladimir, sr=benjamin]

--HG--
extra : rebase_source : 75e46dd8215cb761d4f96b441c05407d991d9d1b
This commit is contained in:
Mike Hommey 2010-04-19 10:29:18 +02:00
Родитель 7155758d89
Коммит ccc0511d5b
1 изменённых файлов: 25 добавлений и 15 удалений

Просмотреть файл

@ -266,6 +266,16 @@ static char **gRestartArgv;
#include "nsGTKToolkit.h"
#endif
// Save literal putenv string to environment variable.
static void
SaveToEnv(const char *putenv)
{
char *expr = strdup(putenv);
if (expr)
PR_SetEnv(expr);
// We intentionally leak |expr| here since it is required by PR_SetEnv.
}
// Save the given word to the specified environment variable.
static void
SaveWordToEnv(const char *name, const nsACString & word)
@ -1711,7 +1721,7 @@ static nsresult LaunchChild(nsINativeAppSupport* aNative,
gRestartArgv[gRestartArgc] = nsnull;
}
PR_SetEnv("MOZ_LAUNCHED_CHILD=1");
SaveToEnv("MOZ_LAUNCHED_CHILD=1");
#if defined(XP_MACOSX)
SetupMacCommandLine(gRestartArgc, gRestartArgv, PR_TRUE);
@ -1986,7 +1996,7 @@ ShowProfileManager(nsIToolkitProfileService* aProfileSvc,
PRBool offline = PR_FALSE;
aProfileSvc->GetStartOffline(&offline);
if (offline) {
PR_SetEnv("XRE_START_OFFLINE=1");
SaveToEnv("XRE_START_OFFLINE=1");
}
return LaunchChild(aNative);
@ -1998,7 +2008,7 @@ ImportProfiles(nsIToolkitProfileService* aPService,
{
nsresult rv;
PR_SetEnv("XRE_IMPORT_PROFILES=1");
SaveToEnv("XRE_IMPORT_PROFILES=1");
// try to import old-style profiles
{ // scope XPCOM
@ -2959,7 +2969,7 @@ XRE_main(int argc, char* argv[], const nsXREAppData* aAppData)
}
#endif
PR_SetEnv("MOZ_LAUNCHED_CHILD=");
SaveToEnv("MOZ_LAUNCHED_CHILD=");
gRestartArgc = gArgc;
gRestartArgv = (char**) malloc(sizeof(char*) * (gArgc + 1 + (override ? 2 : 0)));
@ -3006,7 +3016,7 @@ XRE_main(int argc, char* argv[], const nsXREAppData* aAppData)
PR_fprintf(PR_STDERR, "Error: argument -a requires an application name\n");
return 1;
} else if (ar == ARG_FOUND) {
PR_SetEnv("MOZ_NO_REMOTE=1");
SaveToEnv("MOZ_NO_REMOTE=1");
}
// Handle -help and -version command line arguments.
@ -3452,14 +3462,14 @@ XRE_main(int argc, char* argv[], const nsXREAppData* aAppData)
// clear out any environment variables which may have been set
// during the relaunch process now that we know we won't be relaunching.
PR_SetEnv("XRE_PROFILE_PATH=");
PR_SetEnv("XRE_PROFILE_LOCAL_PATH=");
PR_SetEnv("XRE_PROFILE_NAME=");
PR_SetEnv("XRE_START_OFFLINE=");
PR_SetEnv("XRE_IMPORT_PROFILES=");
PR_SetEnv("NO_EM_RESTART=");
PR_SetEnv("XUL_APP_FILE=");
PR_SetEnv("XRE_BINARY_PATH=");
SaveToEnv("XRE_PROFILE_PATH=");
SaveToEnv("XRE_PROFILE_LOCAL_PATH=");
SaveToEnv("XRE_PROFILE_NAME=");
SaveToEnv("XRE_START_OFFLINE=");
SaveToEnv("XRE_IMPORT_PROFILES=");
SaveToEnv("NO_EM_RESTART=");
SaveToEnv("XUL_APP_FILE=");
SaveToEnv("XRE_BINARY_PATH=");
if (!shuttingDown) {
#ifdef XP_MACOSX
@ -3577,10 +3587,10 @@ XRE_main(int argc, char* argv[], const nsXREAppData* aAppData)
else {
char* noEMRestart = PR_GetEnv("NO_EM_RESTART");
if (noEMRestart && *noEMRestart) {
PR_SetEnv("NO_EM_RESTART=1");
SaveToEnv("NO_EM_RESTART=1");
}
else {
PR_SetEnv("NO_EM_RESTART=0");
SaveToEnv("NO_EM_RESTART=0");
}
}