From d841273ba54b173020aa8da18ba7841cf950c13c Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Tue, 29 Jan 2013 13:28:48 +0100 Subject: Do not call putenv with a temporary string argument These bad calls to putenv suddenly caused the buildIdFile string (macro-expanded from bootstraprc's UserInstallation) in cleanExtensionCache (desktop/source/app/app.cxx) to contain nonsense at least in a local libreoffice-4-0-0 of mine, as getenv("UserInstallation") started to return some non-null pointer pointing to garbage. Change-Id: Ib93fd4e1caef016bd0e00bf09800b9532824ac4b --- vcl/aqua/source/app/salinst.cxx | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'vcl') diff --git a/vcl/aqua/source/app/salinst.cxx b/vcl/aqua/source/app/salinst.cxx index 6ff8aea86c24..cb715cad6e09 100644 --- a/vcl/aqua/source/app/salinst.cxx +++ b/vcl/aqua/source/app/salinst.cxx @@ -306,7 +306,6 @@ void InitSalMain() rtl::OString aResPath( getenv( "STAR_RESOURCEPATH" ) ); rtl::OString aLibPath( getenv( "DYLD_LIBRARY_PATH" ) ); rtl::OString aCmdPath( OUStringToOString(OUString(sysWorkDir), RTL_TEXTENCODING_UTF8).getStr() ); - rtl::OString aTmpPath; // Get absolute path of command's directory if ( !aCmdPath.isEmpty() ) { DirEntry aCmdDirEntry( aCmdPath ); @@ -316,32 +315,29 @@ void InitSalMain() // Assign to PATH environment variable if ( !aCmdPath.isEmpty() ) { - aTmpPath = rtl::OString( "PATH=" ); - aTmpPath += aCmdPath; + rtl::OString aTmpPath( aCmdPath ); if ( !aPath.isEmpty() ) aTmpPath += rtl::OUStringToOString( DirEntry::GetSearchDelimiter(), RTL_TEXTENCODING_ASCII_US ); aTmpPath += aPath; - putenv( (char*)aTmpPath.getStr() ); + setenv( "PATH", aTmpPath.getStr(), 1 ); } // Assign to STAR_RESOURCEPATH environment variable if ( !aCmdPath.isEmpty() ) { - aTmpPath = rtl::OString( "STAR_RESOURCEPATH=" ); - aTmpPath += aCmdPath; + rtl::OString aTmpPath( aCmdPath ); if ( !aResPath.isEmpty() ) aTmpPath += rtl::OUStringToOString( DirEntry::GetSearchDelimiter(), RTL_TEXTENCODING_ASCII_US ); aTmpPath += aResPath; - putenv( (char*)aTmpPath.getStr() ); + setenv( "STAR_RESOURCEPATH", aTmpPath.getStr(), 1 ); } // Assign to DYLD_LIBRARY_PATH environment variable if ( !aCmdPath.isEmpty() ) { - aTmpPath = rtl::OString( "DYLD_LIBRARY_PATH=" ); - aTmpPath += aCmdPath; + rtl::OString aTmpPath( aCmdPath ); if ( !aLibPath.isEmpty() ) aTmpPath += rtl::OUStringToOString( DirEntry::GetSearchDelimiter(), RTL_TEXTENCODING_ASCII_US ); aTmpPath += aLibPath; - putenv( (char*)aTmpPath.getStr() ); + setenv( "DYLD_LIBRARY_PATH", aTmpPath.getStr(), 1 ); } } } -- cgit