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() ...@@ -306,7 +306,6 @@ void InitSalMain()
rtl::OString aResPath( getenv( "STAR_RESOURCEPATH" ) ); rtl::OString aResPath( getenv( "STAR_RESOURCEPATH" ) );
rtl::OString aLibPath( getenv( "DYLD_LIBRARY_PATH" ) ); rtl::OString aLibPath( getenv( "DYLD_LIBRARY_PATH" ) );
rtl::OString aCmdPath( OUStringToOString(OUString(sysWorkDir), RTL_TEXTENCODING_UTF8).getStr() ); rtl::OString aCmdPath( OUStringToOString(OUString(sysWorkDir), RTL_TEXTENCODING_UTF8).getStr() );
rtl::OString aTmpPath;
// Get absolute path of command's directory // Get absolute path of command's directory
if ( !aCmdPath.isEmpty() ) { if ( !aCmdPath.isEmpty() ) {
DirEntry aCmdDirEntry( aCmdPath ); DirEntry aCmdDirEntry( aCmdPath );
...@@ -316,32 +315,29 @@ void InitSalMain() ...@@ -316,32 +315,29 @@ void InitSalMain()
// Assign to PATH environment variable // Assign to PATH environment variable
if ( !aCmdPath.isEmpty() ) if ( !aCmdPath.isEmpty() )
{ {
aTmpPath = rtl::OString( "PATH=" ); rtl::OString aTmpPath( aCmdPath );
aTmpPath += aCmdPath;
if ( !aPath.isEmpty() ) if ( !aPath.isEmpty() )
aTmpPath += rtl::OUStringToOString( DirEntry::GetSearchDelimiter(), RTL_TEXTENCODING_ASCII_US ); aTmpPath += rtl::OUStringToOString( DirEntry::GetSearchDelimiter(), RTL_TEXTENCODING_ASCII_US );
aTmpPath += aPath; aTmpPath += aPath;
putenv( (char*)aTmpPath.getStr() ); setenv( "PATH", aTmpPath.getStr(), 1 );
} }
// Assign to STAR_RESOURCEPATH environment variable // Assign to STAR_RESOURCEPATH environment variable
if ( !aCmdPath.isEmpty() ) if ( !aCmdPath.isEmpty() )
{ {
aTmpPath = rtl::OString( "STAR_RESOURCEPATH=" ); rtl::OString aTmpPath( aCmdPath );
aTmpPath += aCmdPath;
if ( !aResPath.isEmpty() ) if ( !aResPath.isEmpty() )
aTmpPath += rtl::OUStringToOString( DirEntry::GetSearchDelimiter(), RTL_TEXTENCODING_ASCII_US ); aTmpPath += rtl::OUStringToOString( DirEntry::GetSearchDelimiter(), RTL_TEXTENCODING_ASCII_US );
aTmpPath += aResPath; aTmpPath += aResPath;
putenv( (char*)aTmpPath.getStr() ); setenv( "STAR_RESOURCEPATH", aTmpPath.getStr(), 1 );
} }
// Assign to DYLD_LIBRARY_PATH environment variable // Assign to DYLD_LIBRARY_PATH environment variable
if ( !aCmdPath.isEmpty() ) if ( !aCmdPath.isEmpty() )
{ {
aTmpPath = rtl::OString( "DYLD_LIBRARY_PATH=" ); rtl::OString aTmpPath( aCmdPath );
aTmpPath += aCmdPath;
if ( !aLibPath.isEmpty() ) if ( !aLibPath.isEmpty() )
aTmpPath += rtl::OUStringToOString( DirEntry::GetSearchDelimiter(), RTL_TEXTENCODING_ASCII_US ); aTmpPath += rtl::OUStringToOString( DirEntry::GetSearchDelimiter(), RTL_TEXTENCODING_ASCII_US );
aTmpPath += aLibPath; 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