Index: chrome/browser/password_manager/password_store_mac.cc |
diff --git a/chrome/browser/password_manager/password_store_mac.cc b/chrome/browser/password_manager/password_store_mac.cc |
index 31c0d2b43d67d07a11c33b539ebc98d31deac799..51f2ad11a5a5969bb50358b868c5f5e579fe2ef8 100644 |
--- a/chrome/browser/password_manager/password_store_mac.cc |
+++ b/chrome/browser/password_manager/password_store_mac.cc |
@@ -1062,11 +1062,11 @@ ScopedVector<autofill::PasswordForm> PasswordStoreMac::FillMatchingLogins( |
chrome::ScopedSecKeychainSetUserInteractionAllowed user_interaction_allowed( |
prompt_policy == ALLOW_PROMPT); |
- if (!login_metadata_db_) |
- return ScopedVector<autofill::PasswordForm>(); |
- |
ScopedVector<PasswordForm> database_forms; |
- login_metadata_db_->GetLogins(form, &database_forms); |
+ if (!login_metadata_db_ || |
+ !login_metadata_db_->GetLogins(form, &database_forms)) { |
+ return ScopedVector<autofill::PasswordForm>(); |
+ } |
// Let's gather all signon realms we want to match with keychain entries. |
std::set<std::string> realm_set; |
@@ -1125,6 +1125,7 @@ void PasswordStoreMac::GetAutofillableLoginsImpl( |
bool PasswordStoreMac::FillAutofillableLogins( |
ScopedVector<autofill::PasswordForm>* forms) { |
DCHECK(thread_->message_loop() == base::MessageLoop::current()); |
+ forms->clear(); |
ScopedVector<PasswordForm> database_forms; |
if (!login_metadata_db_ || |
@@ -1144,6 +1145,7 @@ bool PasswordStoreMac::FillAutofillableLogins( |
bool PasswordStoreMac::FillBlacklistLogins( |
ScopedVector<autofill::PasswordForm>* forms) { |
+ forms->clear(); |
engedy
2015/03/09 13:33:18
nit: Sorry, I was meaning to say after the DCHECK.
vabr (Chromium)
2015/03/09 17:44:15
Done.
I agree that preconditions-checking DCHECK s
|
DCHECK(thread_->message_loop() == base::MessageLoop::current()); |
return login_metadata_db_ && login_metadata_db_->GetBlacklistLogins(forms); |
} |
@@ -1161,7 +1163,8 @@ bool PasswordStoreMac::DatabaseHasFormMatchingKeychainForm( |
DCHECK(login_metadata_db_); |
bool has_match = false; |
ScopedVector<autofill::PasswordForm> database_forms; |
- login_metadata_db_->GetLogins(form, &database_forms); |
+ if (!login_metadata_db_->GetLogins(form, &database_forms)) |
+ return false; |
for (const autofill::PasswordForm* db_form : database_forms) { |
// Below we filter out forms with non-empty original_signon_realm, because |
// those signal fuzzy matches, and we are only interested in exact ones. |
@@ -1204,7 +1207,8 @@ void PasswordStoreMac::CleanOrphanedForms( |
DCHECK(login_metadata_db_); |
ScopedVector<autofill::PasswordForm> database_forms; |
- login_metadata_db_->GetAutofillableLogins(&database_forms); |
+ if (!login_metadata_db_->GetAutofillableLogins(&database_forms)) |
+ return; |
// Filter forms with corresponding Keychain entry out of |database_forms|. |
ScopedVector<PasswordForm> forms_with_keychain_entry; |