Merge pull request #975 from sipa/versioncheck
authorGavin Andresen <gavinandresen@gmail.com>
Thu, 22 Mar 2012 16:18:11 +0000 (09:18 -0700)
committerGavin Andresen <gavinandresen@gmail.com>
Thu, 22 Mar 2012 16:18:11 +0000 (09:18 -0700)
Check minversion before loading the rest of the wallet

src/db.cpp

index 3bdfd64..4e1b959 100644 (file)
@@ -799,6 +799,14 @@ int CWalletDB::LoadWallet(CWallet* pwallet)
     //// todo: shouldn't we catch exceptions and try to recover and continue?
     CRITICAL_BLOCK(pwallet->cs_wallet)
     {
+        int nMinVersion = 0;
+        if (Read((string)"minversion", nMinVersion))
+        {
+            if (nMinVersion > CLIENT_VERSION)
+                return DB_TOO_NEW;
+            pwallet->LoadMinVersion(nMinVersion);
+        }
+
         // Get cursor
         Dbc* pcursor = GetCursor();
         if (!pcursor)
@@ -968,14 +976,6 @@ int CWalletDB::LoadWallet(CWallet* pwallet)
                 if (nFileVersion == 10300)
                     nFileVersion = 300;
             }
-            else if (strType == "minversion")
-            {
-                int nMinVersion = 0;
-                ssValue >> nMinVersion;
-                if (nMinVersion > CLIENT_VERSION)
-                    return DB_TOO_NEW;
-                pwallet->LoadMinVersion(nMinVersion);
-            }
             else if (strType == "cscript")
             {
                 uint160 hash;