summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2018-11-21 13:54:28 +0200
committerTor Lillqvist <tml@iki.fi>2018-11-22 22:03:31 +0200
commit54c2e3c83ab08ebe6179561e057e5189a842a631 (patch)
tree779b4d6ea20c4fa661698a00fb3aca214101701c /sfx2
parent3afe0c79fa185a6fe01c48e427c49b12728e8c4a (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
Diffstat (limited to 'sfx2')
-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;
}
}