mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-12-27 08:19:47 -05:00
KeePass2Reader: fix error message logic (#2523)
This commit is contained in:
parent
bdee748a6a
commit
b6eeabab5e
@ -64,22 +64,25 @@ bool KeePass2Reader::readDatabase(QIODevice* device, QSharedPointer<const Compos
|
|||||||
quint32 signature1, signature2;
|
quint32 signature1, signature2;
|
||||||
bool ok = KdbxReader::readMagicNumbers(device, signature1, signature2, m_version);
|
bool ok = KdbxReader::readMagicNumbers(device, signature1, signature2, m_version);
|
||||||
|
|
||||||
// mask out minor version
|
if (!ok) {
|
||||||
m_version &= KeePass2::FILE_VERSION_CRITICAL_MASK;
|
raiseError(tr("Failed to read database file."));
|
||||||
|
|
||||||
if (!ok || signature1 != KeePass2::SIGNATURE_1 || signature2 != KeePass2::SIGNATURE_2) {
|
|
||||||
raiseError(tr("Not a KeePass database."));
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (signature2 == KeePass1::SIGNATURE_2) {
|
if (signature1 == KeePass1::SIGNATURE_1 && signature2 == KeePass1::SIGNATURE_2) {
|
||||||
raiseError(tr("The selected file is an old KeePass 1 database (.kdb).\n\n"
|
raiseError(tr("The selected file is an old KeePass 1 database (.kdb).\n\n"
|
||||||
"You can import it by clicking on Database > 'Import KeePass 1 database...'.\n"
|
"You can import it by clicking on Database > 'Import KeePass 1 database...'.\n"
|
||||||
"This is a one-way migration. You won't be able to open the imported "
|
"This is a one-way migration. You won't be able to open the imported "
|
||||||
"database with the old KeePassX 0.4 version."));
|
"database with the old KeePassX 0.4 version."));
|
||||||
return false;
|
return false;
|
||||||
|
} else if (!(signature1 == KeePass2::SIGNATURE_1 && signature2 == KeePass2::SIGNATURE_2)) {
|
||||||
|
raiseError(tr("Not a KeePass database."));
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// mask out minor version
|
||||||
|
m_version &= KeePass2::FILE_VERSION_CRITICAL_MASK;
|
||||||
|
|
||||||
quint32 maxVersion = KeePass2::FILE_VERSION_4 & KeePass2::FILE_VERSION_CRITICAL_MASK;
|
quint32 maxVersion = KeePass2::FILE_VERSION_4 & KeePass2::FILE_VERSION_CRITICAL_MASK;
|
||||||
if (m_version < KeePass2::FILE_VERSION_MIN || m_version > maxVersion) {
|
if (m_version < KeePass2::FILE_VERSION_MIN || m_version > maxVersion) {
|
||||||
raiseError(tr("Unsupported KeePass 2 database version."));
|
raiseError(tr("Unsupported KeePass 2 database version."));
|
||||||
|
Loading…
Reference in New Issue
Block a user