From: Michael Pyne Date: Wed, 11 Jan 2017 02:05:48 +0000 (-0500) Subject: kssl: Ensure user certificate directory has been created before use. X-Git-Tag: archive/raspbian/5.97.0-1+rpi1~1^2^2^2^2~6 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=8439274702d4377e42d48ad247f678f9126b8c7c;p=kio.git kssl: Ensure user certificate directory has been created before use. The KSSL KCM (in kdelibs4support) fails to save imported certificates to the user certificate store, unless the user store directory is manually created by the user first. Fix by ensuring the directory is created before trying to save user certs. Differential Revision: https://phabricator.kde.org/D4060 BUG: 342958 FIXED-IN: 5.31 Gbp-Pq: Name kssl-Ensure-user-certificate-directory-has-been-created-b.patch --- diff --git a/src/core/ksslcertificatemanager.cpp b/src/core/ksslcertificatemanager.cpp index 2c51cf7..2e57e32 100644 --- a/src/core/ksslcertificatemanager.cpp +++ b/src/core/ksslcertificatemanager.cpp @@ -247,9 +247,9 @@ bool KSslCertificateManagerPrivate::addCertificate(const KSslCaCertificate &in) } QString certFilename = userCertDir + QString::fromLatin1(in.certHash); - //qDebug() << certFilename; + QFile certFile(certFilename); - if (certFile.open(QIODevice::ReadOnly)) { + if (!QDir().mkpath(userCertDir) || certFile.open(QIODevice::ReadOnly)) { return false; } if (!certFile.open(QIODevice::WriteOnly)) {