summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--framework/source/services/substitutepathvars.cxx8
-rw-r--r--sal/osl/unx/file_url.cxx7
2 files changed, 9 insertions, 6 deletions
diff --git a/framework/source/services/substitutepathvars.cxx b/framework/source/services/substitutepathvars.cxx
index 17375a4de32b..3827e3233247 100644
--- a/framework/source/services/substitutepathvars.cxx
+++ b/framework/source/services/substitutepathvars.cxx
@@ -822,9 +822,8 @@ OUString SubstitutePathVariables::GetHomeVariableValue() const
OUString SubstitutePathVariables::GetPathVariableValue() const
{
-
OUString aRetStr;
- const char* pEnv = getenv( "PATH" );
+ const char* pEnv = getenv( "PATH" );
if ( pEnv )
{
@@ -838,9 +837,10 @@ OUString SubstitutePathVariables::GetPathVariableValue() const
do
{
OUString sToken = aPathList.getToken(0, SAL_PATHSEPARATOR, nToken);
- if (!sToken.isEmpty())
+ if (!sToken.isEmpty() &&
+ osl::FileBase::getFileURLFromSystemPath( sToken, aTmp ) ==
+ osl::FileBase::RC::E_None )
{
- osl::FileBase::getFileURLFromSystemPath( sToken, aTmp );
if ( bAppendSep )
aPathStrBuffer.append( ";" ); // Office uses ';' as path separator
aPathStrBuffer.append( aTmp );
diff --git a/sal/osl/unx/file_url.cxx b/sal/osl/unx/file_url.cxx
index cc9907a96060..6c279f57cbbf 100644
--- a/sal/osl/unx/file_url.cxx
+++ b/sal/osl/unx/file_url.cxx
@@ -257,20 +257,23 @@ oslFileError SAL_CALL osl_getFileURLFromSystemPath( rtl_uString *ustrSystemPath,
if( '~' == ustrSystemPath->buffer[0] )
{
/* check if another user is specified */
- if( ( 1 == ustrSystemPath->length ) || ( '/' == ustrSystemPath->buffer[1] ) )
+ if( ( 1 == ustrSystemPath->length ) ||
+ ( '/' == ustrSystemPath->buffer[1] ) )
{
/* osl_getHomeDir returns file URL */
oslSecurity pSecurity = osl_getCurrentSecurity();
osl_getHomeDir( pSecurity , &pTmp );
osl_freeSecurityHandle( pSecurity );
+ if (!pTmp)
+ return osl_File_E_INVAL;
+
/* remove "file://" prefix */
rtl_uString_newFromStr_WithLength( &pTmp, pTmp->buffer + 7, pTmp->length - 7 );
/* replace '~' in original string */
rtl_uString_newReplaceStrAt( &pTmp, ustrSystemPath, 0, 1, pTmp );
}
-
else
{
/* FIXME: replace ~user with users home directory */