Tor: properly overwrite old binary

remotes/1691844314220217825/master
tobtoht 3 years ago
parent cfd1942b38
commit 69551efde3
Signed by untrusted user: tobtoht
GPG Key ID: 1CADD27F41F45C3C

@ -211,8 +211,12 @@ bool Tor::unpackBins() {
TorVersion embeddedVersion = this->stringToVersion(QString(TOR_VERSION)); TorVersion embeddedVersion = this->stringToVersion(QString(TOR_VERSION));
TorVersion filesystemVersion = this->getVersion(torPath); TorVersion filesystemVersion = this->getVersion(torPath);
qDebug() << QString("Tor versions: embedded %1, filesystem %2").arg(embeddedVersion.toString(), filesystemVersion.toString()); qDebug() << QString("Tor versions: embedded %1, filesystem %2").arg(embeddedVersion.toString(), filesystemVersion.toString());
if (embeddedVersion > filesystemVersion) { if (TorVersion::isValid(filesystemVersion) && (embeddedVersion > filesystemVersion)) {
QFile::remove(torPath); qInfo() << "Embedded version is newer, overwriting.";
QFile::setPermissions(torPath, QFile::ReadOther | QFile::WriteOther);
if (!QFile::remove(torPath)) {
qWarning() << "Unable to remove old Tor binary";
};
} }
qDebug() << "Writing Tor executable to " << this->torPath; qDebug() << "Writing Tor executable to " << this->torPath;

@ -54,6 +54,10 @@ struct TorVersion
QString::number(patch), QString::number(release)); QString::number(patch), QString::number(release));
} }
static bool isValid(const TorVersion &v) {
return v != TorVersion();
}
int major; int major;
int minor; int minor;
int patch; int patch;

Loading…
Cancel
Save