[processing] Fix invalid filenames are used for temporary files

during models

Fixes #18263
This commit is contained in:
Nyall Dawson 2018-03-03 16:09:57 +10:00
parent 8543a91264
commit 84cdd609ab
2 changed files with 7 additions and 1 deletions

View File

@ -27,6 +27,7 @@
#include "qgsprocessingalgorithm.h"
#include "qgsvectorlayerfeatureiterator.h"
#include "qgsexpressioncontextscopegenerator.h"
#include "qgsfileutils.h"
QList<QgsRasterLayer *> QgsProcessingUtils::compatibleRasterLayers( QgsProject *project, bool sort )
{
@ -539,7 +540,7 @@ QString QgsProcessingUtils::generateTempFilename( const QString &basename )
QDir tmpDir;
tmpDir.mkdir( path );
}
return path + '/' + basename;
return path + '/' + QgsFileUtils::stringToSafeFilename( basename );
}
QString QgsProcessingUtils::formatHelpMapAsHtml( const QVariantMap &map, const QgsProcessingAlgorithm *algorithm )

View File

@ -5797,6 +5797,11 @@ void TestQgsProcessing::tempUtils()
QVERIFY( tempFile1 != tempFile2 );
QVERIFY( tempFile2.endsWith( "test.txt" ) );
QVERIFY( tempFile2.startsWith( tempFolder ) );
// invalid characters
QString tempFile3 = QgsProcessingUtils::generateTempFilename( "mybad:file.txt" );
QVERIFY( tempFile3.endsWith( "mybad_file.txt" ) );
QVERIFY( tempFile3.startsWith( tempFolder ) );
}
void TestQgsProcessing::convertCompatible()