diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2013-01-29 13:28:48 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2013-01-29 13:28:48 +0100 |
commit | d841273ba54b173020aa8da18ba7841cf950c13c (patch) | |
tree | c56808ef30245a4e6708e1062cd39f5122b54f5d /vcl/aqua | |
parent | f753b1b84798942f35cc86571922c28ba2a5b126 (diff) |
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
Diffstat (limited to 'vcl/aqua')
-rw-r--r-- | vcl/aqua/source/app/salinst.cxx | 16 |
1 files changed, 6 insertions, 10 deletions
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 ); } } } |