diff --git a/desktop/unx/source/start.c b/desktop/unx/source/start.c index e3e5441bf..a75b05401 100644 --- a/desktop/unx/source/start.c +++ b/desktop/unx/source/start.c @@ -263,6 +263,7 @@ static rtl_uString *get_pipe_path(rtl_uString *pAppPath) rtlBootstrapHandle handle; rtl_uString *pMd5hash = NULL; sal_Unicode pUnicode[RTL_USTR_MAX_VALUEOFINT32]; + char *env_tmpdir; /* setup bootstrap filename */ rtl_uString_newFromAscii(&pPath, "file://"); @@ -289,7 +290,10 @@ static rtl_uString *get_pipe_path(rtl_uString *pAppPath) if (!pMd5hash) rtl_uString_new(&pMd5hash); - if (access(PIPEDEFAULTPATH, W_OK) == 0) + env_tmpdir = getenv("TMPDIR"); + if ( access( env_tmpdir, W_OK ) == 0 ) + rtl_uString_newFromAscii( &pResult, env_tmpdir ); + else if (access(PIPEDEFAULTPATH, W_OK) == 0) { rtl_uString_newFromAscii(&pResult, PIPEDEFAULTPATH); } diff --git a/sal/osl/unx/pipe.cxx b/sal/osl/unx/pipe.cxx index f9037a14e..f3cc63246 100644 --- a/sal/osl/unx/pipe.cxx +++ b/sal/osl/unx/pipe.cxx @@ -143,11 +143,17 @@ static oslPipe osl_psz_createPipe(const sal_Char *pszPipeName, oslPipeOptions Op int Flags; size_t len; struct sockaddr_un addr; + char *env_tmpdir; OString name; oslPipe pPipe; - if (access(PIPEDEFAULTPATH.getStr(), W_OK) == 0) + env_tmpdir = getenv("TMPDIR"); + if (access(env_tmpdir, W_OK) == 0) + { + name = env_tmpdir; + } + else if (access(PIPEDEFAULTPATH.getStr(), W_OK) == 0) name = PIPEDEFAULTPATH; else if (access(PIPEALTERNATEPATH.getStr(), W_OK) == 0) name = PIPEALTERNATEPATH;