include/osl/detail/file.h | 3 ++- sal/osl/unx/file.cxx | 9 ++++++--- unotools/source/ucbhelper/tempfile.cxx | 12 ++++-------- 3 files changed, 12 insertions(+), 12 deletions(-)
New commits: commit f67702e709a9049042fdd456d2456d35055a935d Author: Stephan Bergmann <sberg...@redhat.com> Date: Mon May 19 11:44:24 2014 +0200 fdo#60338: Add osl_File_OpenFlag_Private to avoid umask Change-Id: I293295244d1b089d747548c5025cb73b8ec428a4 diff --git a/include/osl/detail/file.h b/include/osl/detail/file.h index 96d8807..ee5a172 100644 --- a/include/osl/detail/file.h +++ b/include/osl/detail/file.h @@ -19,10 +19,11 @@ */ /* More flags needed for semantics that match the open() call that - used to be in SvFileStream::Open(). + used to be in SvFileStream::Open(), and for temp files: */ #define osl_File_OpenFlag_Trunc 0x00000010L #define osl_File_OpenFlag_NoExcl 0x00000020L +#define osl_File_OpenFlag_Private 0x00000040L /** @endcond */ diff --git a/sal/osl/unx/file.cxx b/sal/osl/unx/file.cxx index e781574..a7eaac1 100644 --- a/sal/osl/unx/file.cxx +++ b/sal/osl/unx/file.cxx @@ -853,16 +853,19 @@ openFilePath( const char *cpFilePath, oslFileHandle* pHandle, sal_uInt32 uFlags, #endif /* set mode and flags */ - int defmode = S_IRUSR | S_IRGRP | S_IROTH; + int defmode = uFlags & osl_File_OpenFlag_Private + ? S_IRUSR : S_IRUSR | S_IRGRP | S_IROTH; int flags = O_RDONLY; if (uFlags & osl_File_OpenFlag_Write) { - defmode |= S_IWUSR | S_IWGRP | S_IWOTH; + defmode |= uFlags & osl_File_OpenFlag_Private + ? S_IWUSR : S_IWUSR | S_IWGRP | S_IWOTH; flags = OPEN_WRITE_FLAGS; } if (uFlags & osl_File_OpenFlag_Create) { - defmode |= S_IWUSR | S_IWGRP | S_IWOTH; + defmode |= uFlags & osl_File_OpenFlag_Private + ? S_IWUSR : S_IWUSR | S_IWGRP | S_IWOTH; flags = OPEN_CREATE_FLAGS; } if (mode == mode_t(-1)) diff --git a/unotools/source/ucbhelper/tempfile.cxx b/unotools/source/ucbhelper/tempfile.cxx index 8d4152c..5b9cae7 100644 --- a/unotools/source/ucbhelper/tempfile.cxx +++ b/unotools/source/ucbhelper/tempfile.cxx @@ -29,6 +29,7 @@ #include <ucbhelper/fileidentifierconverter.hxx> #include <rtl/ustring.hxx> #include <rtl/instance.hxx> +#include <osl/detail/file.h> #include <osl/file.hxx> #include <tools/time.hxx> #include <tools/debug.hxx> @@ -258,14 +259,9 @@ OUString lcl_createName( { DBG_ASSERT( bKeep, "Too expensive, use directory for creating name!" ); File aFile( aTmp ); -#ifdef UNX - /* RW permission for the user only! */ - mode_t old_mode = umask(077); -#endif - FileBase::RC err = aFile.open(osl_File_OpenFlag_Create | (bLock ? 0 : osl_File_OpenFlag_NoLock)); -#ifdef UNX - umask(old_mode); -#endif + FileBase::RC err = aFile.open( + osl_File_OpenFlag_Create | osl_File_OpenFlag_Private + | (bLock ? 0 : osl_File_OpenFlag_NoLock)); if ( err == FileBase::E_None || (bLock && err == FileBase::E_NOLCK) ) { aFile.close(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits