summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2018-07-03 21:38:48 +1000
committerSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2019-10-11 09:42:07 +0200
commit68fde939500888a4feb094b9f31c3917e93f4d26 (patch)
treeb0b88cb58b66b140048ba4020a4f60a383dfb670
parentBump version to 6.1.7.6 (diff)
downloadcore-68fde939500888a4feb094b9f31c3917e93f4d26.tar.gz
core-68fde939500888a4feb094b9f31c3917e93f4d26.zip
Avoid failing assert in SwDBManager::MergeMailFiles
The failing assert reproducing scenario is the steps in https://bugs.documentfoundation.org/show_bug.cgi?id=116543#c0 rMergeDescriptor.nMergeType == DBMGR_MERGE_PRINTER; rMergeDescriptor.bPrefixIsFilename is true; rMergeDescriptor.sPrefix is empty. The failing assert is unrelated to the crash in tdf#116543. It looks like the assertion was incorrect; assert on empty prefix instead. Change-Id: Ibeedb90a9fac810124283fc06aa756777fa04720 Reviewed-on: https://gerrit.libreoffice.org/56863 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/80552 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
-rw-r--r--sw/source/uibase/dbui/dbmgr.cxx15
1 files changed, 9 insertions, 6 deletions
diff --git a/sw/source/uibase/dbui/dbmgr.cxx b/sw/source/uibase/dbui/dbmgr.cxx
index bb3c5c97b7bb..de0a9ad8869d 100644
--- a/sw/source/uibase/dbui/dbmgr.cxx
+++ b/sw/source/uibase/dbui/dbmgr.cxx
@@ -1200,19 +1200,22 @@ bool SwDBManager::MergeMailFiles(SwWrtShell* pSourceShell,
const bool bIsMergeSilent = IsMergeSilent();
bool bCheckSingleFile_ = rMergeDescriptor.bCreateSingleFile;
+ OUString sPrefix_ = rMergeDescriptor.sPrefix;
if( bMT_EMAIL )
{
assert( !rMergeDescriptor.bPrefixIsFilename );
- assert( bMT_EMAIL && !bCheckSingleFile_ );
+ assert(!bCheckSingleFile_);
bCheckSingleFile_ = false;
}
else if( bMT_SHELL || bMT_PRINTER )
{
- assert( !rMergeDescriptor.bPrefixIsFilename );
- assert( (bMT_SHELL || bMT_PRINTER) && bCheckSingleFile_ );
+ assert(bCheckSingleFile_);
bCheckSingleFile_ = true;
+ assert(sPrefix_.isEmpty());
+ sPrefix_.clear();
}
const bool bCreateSingleFile = bCheckSingleFile_;
+ const OUString sDescriptorPrefix = sPrefix_;
// Setup for dumping debugging documents
static const char *sMaxDumpDocs = nullptr;
@@ -1435,7 +1438,7 @@ bool SwDBManager::MergeMailFiles(SwWrtShell* pSourceShell,
// create a new temporary file name - only done once in case of bCreateSingleFile
if( bNeedsTempFiles && ( !bWorkDocInitialized || !bCreateSingleFile ))
{
- OUString sPrefix = rMergeDescriptor.sPrefix;
+ OUString sPrefix = sDescriptorPrefix;
OUString sLeading;
//#i97667# if the name is from a database field then it will be used _as is_
@@ -1690,11 +1693,11 @@ bool SwDBManager::MergeMailFiles(SwWrtShell* pSourceShell,
// save merged document
assert( aTempFile.get() );
INetURLObject aTempFileURL;
- if( rMergeDescriptor.sPrefix.isEmpty() || !rMergeDescriptor.bPrefixIsFilename )
+ if (sDescriptorPrefix.isEmpty() || !rMergeDescriptor.bPrefixIsFilename)
aTempFileURL.SetURL( aTempFile->GetURL() );
else
{
- aTempFileURL.SetURL( rMergeDescriptor.sPrefix );
+ aTempFileURL.SetURL(sDescriptorPrefix);
// remove the unneeded temporary file
aTempFile->EnableKillingFile();
}