summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2013-01-29 13:28:48 +0100
committerMichael Stahl <mstahl@redhat.com>2013-01-29 12:45:01 +0000
commit1639fcc2094f11dc7901e2d6f908f33b2a19d0fc (patch)
tree8a7fd46bc164ca326322276aa56fe0431dd2f782
parent6f10a3caa1b4dedc1e37b95b9e72598449e338c7 (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 (cherry picked from commit d841273ba54b173020aa8da18ba7841cf950c13c) Reviewed-on: https://gerrit.libreoffice.org/1918 Reviewed-by: Tor Lillqvist <tml@iki.fi> Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
-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 90a3fa737429..0a087888e7b0 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 );
}
}
}