Chromium Code Reviews| Index: chrome/browser/webdata/web_database.cc |
| diff --git a/chrome/browser/webdata/web_database.cc b/chrome/browser/webdata/web_database.cc |
| index 122f3de405216bc702522562dbbdbe49d130503a..191a464e1a11af2e393d211b269652b2a53077c3 100644 |
| --- a/chrome/browser/webdata/web_database.cc |
| +++ b/chrome/browser/webdata/web_database.cc |
| @@ -158,8 +158,15 @@ sql::InitStatus WebDatabase::Init(const FilePath& db_name) { |
| } |
| sql::InitStatus WebDatabase::MigrateOldVersionsAsNeeded() { |
| + // Some malware tries to force protector to re-sign things by lowering the |
| + // version number, causing migration to fail. Ensure the version number is at |
| + // least as high as the compatible version number. |
| + int current_version = std::max(meta_table_.GetVersionNumber(), |
| + meta_table_.GetCompatibleVersionNumber()); |
| + if (current_version < meta_table_.GetCompatibleVersionNumber()) |
|
dhollowa
2012/07/09 20:26:06
Shouldn't this be:
if (meta_table_.GetVersionNum
Ivan Korotkov
2012/07/09 20:51:04
Ouch, you must be right. The test passed because t
Peter Kasting
2012/07/09 21:22:01
I'm sorry for suggesting this incorrect code to Iv
|
| + ChangeVersion(&meta_table_, current_version, false); |
| + |
| // Migrate if necessary. |
| - int current_version = meta_table_.GetVersionNumber(); |
| switch (current_version) { |
| // Versions 1 - 19 are unhandled. Version numbers greater than |
| // kCurrentVersionNumber should have already been weeded out by the caller. |