qt: Pass home directory with forward slashes when launching dirmngr
* lang/qt/src/qgpgmewkdlookupjob.cpp (startDirmngr): Replace backslashes with forward slashes in homedir returned by GpgME::dirInfo. -- This works around a bug which causes backslashes to be escaped (doubled) twice on Windows, once by gpgme_op_spawn and once by the spawn helper gpgme-w32spawn. The next versions of GnuPG 2.2 and 2.4 also have a workaround for this. GnuPG-bug-id: 6833
This commit is contained in:
parent
d60d1b7f79
commit
7e520213c0
@ -65,11 +65,13 @@ static GpgME::Error startDirmngr(Context *assuanCtx)
|
|||||||
qCDebug(QGPGME_LOG) << "Error: Failed to get context for spawn engine (" << err.asString() << ")";
|
qCDebug(QGPGME_LOG) << "Error: Failed to get context for spawn engine (" << err.asString() << ")";
|
||||||
}
|
}
|
||||||
const auto gpgconfProgram = GpgME::dirInfo("gpgconf-name");
|
const auto gpgconfProgram = GpgME::dirInfo("gpgconf-name");
|
||||||
const auto homedir = GpgME::dirInfo("homedir");
|
// replace backslashes with forward slashes in homedir to work around bug T6833
|
||||||
|
std::string homedir{GpgME::dirInfo("homedir")};
|
||||||
|
std::replace(homedir.begin(), homedir.end(), '\\', '/');
|
||||||
const char *argv[] = {
|
const char *argv[] = {
|
||||||
gpgconfProgram,
|
gpgconfProgram,
|
||||||
"--homedir",
|
"--homedir",
|
||||||
homedir,
|
homedir.c_str(),
|
||||||
"--launch",
|
"--launch",
|
||||||
"dirmngr",
|
"dirmngr",
|
||||||
NULL
|
NULL
|
||||||
|
Loading…
Reference in New Issue
Block a user