Kaydet (Commit) d841273b authored tarafından Stephan Bergmann's avatar Stephan Bergmann

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
üst f753b1b8
......@@ -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 );
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment