summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2018-11-21 13:54:28 +0200
committerTor Lillqvist <tml@collabora.com>2018-11-24 10:07:16 +0100
commit8f575690ef7e8861cba01fada2166ca31424ebc5 (patch)
treed98a90301c8933bf695dd4ba49778af2c23e0cce
parent31ba94e46915904a509f13506258d187f5cea252 (diff)
Don't create temp file in save destination folder when sandboxed
In a sandboxed environment we don't want to attempt to create temporary files in the same directory where the user has selected an output file to be stored. The sandboxed process has permission only to create the specifically named output file that the user chose in the system file dialog in that directory. Change-Id: I65274b4c433bd66b436429bea4b287a0505b72c9 (cherry picked from commit 54c2e3c83ab08ebe6179561e057e5189a842a631) Reviewed-on: https://gerrit.libreoffice.org/63918 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
-rw-r--r--sfx2/source/doc/docfile.cxx9
1 files changed, 8 insertions, 1 deletions
diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx
index 61e92a3e0d5f..144fe50aa64c 100644
--- a/sfx2/source/doc/docfile.cxx
+++ b/sfx2/source/doc/docfile.cxx
@@ -1,4 +1,4 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
* This file is part of the LibreOffice project.
*
@@ -3506,6 +3506,11 @@ OUString GetLogicBase(std::unique_ptr<SfxMedium_Impl> const & pImpl)
{
OUString aLogicBase;
+// In a sandboxed environment we don't want to attempt to create temporary files in the same
+// directory where the user has selected an output file to be stored. The sandboxed process has
+// permission only to create the specifically named output file in that directory.
+#if !HAVE_FEATURE_MACOSX_SANDBOX
+
if (comphelper::isFileUrl(pImpl->m_aLogicName) && !pImpl->m_pInStream)
{
// Try to create the temp file in the same directory when storing.
@@ -3521,6 +3526,8 @@ OUString GetLogicBase(std::unique_ptr<SfxMedium_Impl> const & pImpl)
// Embedded objects would mean a special base, ignore that.
aLogicBase.clear();
+#endif // !HAVE_FEATURE_MACOSX_SANDBOX
+
return aLogicBase;
}
}