summaryrefslogtreecommitdiff
path: root/plugins/Db3x_mmap/src/dbcrypt.cpp
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2013-12-30 08:39:34 +0000
committerGeorge Hazan <george.hazan@gmail.com>2013-12-30 08:39:34 +0000
commit2bac0330a0e427bbc4f6773c4023f4bd9d667835 (patch)
treec969552e47a28ff4ccae0188675e74e0586ce219 /plugins/Db3x_mmap/src/dbcrypt.cpp
parenta7eb152895dac688b255591b9b851780924b749d (diff)
fix for old mmap keys, then corrupted by mmap_sa
git-svn-id: http://svn.miranda-ng.org/main/trunk@7420 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Db3x_mmap/src/dbcrypt.cpp')
-rw-r--r--plugins/Db3x_mmap/src/dbcrypt.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/plugins/Db3x_mmap/src/dbcrypt.cpp b/plugins/Db3x_mmap/src/dbcrypt.cpp
index 7b384cedfe..f181f53cd2 100644
--- a/plugins/Db3x_mmap/src/dbcrypt.cpp
+++ b/plugins/Db3x_mmap/src/dbcrypt.cpp
@@ -162,9 +162,15 @@ LBL_SetNewKey:
goto LBL_SetNewKey;
if (!m_crypto->setKey(dbv.pbVal, iKeyLength))
- if (!EnterPassword(dbv.pbVal, iKeyLength)) // password protected?
+ if (!EnterPassword(dbv.pbVal, iKeyLength)) { // password protected?
+ if (m_dbHeader.version == DB_THIS_VERSION)
return 4;
+ // one of the early used version of mmap was replaced then by mmap_sa
+ // simply remove old badly generated key
+ goto LBL_SetNewKey;
+ }
+
FreeVariant(&dbv);
}
@@ -178,6 +184,11 @@ LBL_SetNewKey:
DBWrite(0, &dbSignatureU, sizeof(dbSignatureU));
}
+ if (m_dbHeader.version == DB_OLD_VERSION) {
+ m_dbHeader.version = DB_THIS_VERSION;
+ DBWrite(sizeof(dbSignatureU), &m_dbHeader.version, sizeof(m_dbHeader.version));
+ }
+
InitDialogs();
return 0;
}