Details
Description
The binarycreator program fails to generate a 7zip archive if the temporary directory contains spaces. This is not uncommon on Windows since the temporary directory is in e.g. C:\Users\<username\AppData\Local\Temp. If the user name contains spaces (e.g. "Frerich Raabe"), binarycreator faills. Setting the TMP environment variable to a path which does not contain spaces works around the issue.
The reason for this is that the createArchive function in src/libs/installer/lib7z_facade.cpp assembles a command line via
const UString command = QString2UString( // (mode: add) (type: 7z) (time: modified|creation|access) (threads: multi-threaded) QLatin1String("a -t7z -mtm=on -mtc=on -mta=on -mmt=on ") #ifdef Q_OS_WIN + QLatin1String("-sccUTF-8 ") // (files: case-sensitive|UTF8) #endif + QString::fromLatin1("-mx=%1 ").arg(int(level)) // (compression: level) + QDir::toNativeSeparators(target) + QLatin1Char(' ') + QDir::toNativeSeparators(sources.join(QLatin1Char(' '))) );
...but neglects escaping the 'target' argument or any of the 'sources' values.