kdirshare: fix pointer derefence on serve or publish error

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2022-05-11 03:17:02 +00:00
parent 85e1e8a8ea
commit 6ce6615bd6

View file

@ -97,13 +97,15 @@ QString KDirShareModule::share(const QString &dirpath, const uint portmin, const
} }
// qDebug() << Q_FUNC_INFO << serverport; // qDebug() << Q_FUNC_INFO << serverport;
if (!kdirshareimpl->serve(QHostAddress(QHostAddress::Any), portmin, portmax)) { if (!kdirshareimpl->serve(QHostAddress(QHostAddress::Any), portmin, portmax)) {
const QString serveerror = kdirshareimpl->errorString();
delete kdirshareimpl; delete kdirshareimpl;
return i18n("Could not serve: %1", kdirshareimpl->errorString()); return i18n("Could not serve: %1", serveerror);
} }
if (!kdirshareimpl->publish()) { if (!kdirshareimpl->publish()) {
const QString publisherror = kdirshareimpl->publishError();
kdirshareimpl->stop(); kdirshareimpl->stop();
delete kdirshareimpl; delete kdirshareimpl;
return i18n("Could not publish service: %1", kdirshareimpl->publishError()); return i18n("Could not publish service: %1", publisherror);
} }
m_dirshares.append(kdirshareimpl); m_dirshares.append(kdirshareimpl);
return QString(); return QString();