summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2013-01-29 13:28:48 +0100
committerStephan Bergmann <sbergman@redhat.com>2013-01-29 13:28:48 +0100
commitd841273ba54b173020aa8da18ba7841cf950c13c (patch)
treec56808ef30245a4e6708e1062cd39f5122b54f5d /vcl
parentf753b1b84798942f35cc86571922c28ba2a5b126 (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')
-rw-r--r--vcl/aqua/source/app/salinst.cxx16
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 );
}
}
}