Commit 4e778114 authored by Vasilii Sukhanov's avatar Vasilii Sukhanov Committed by Commit Bot

Check validity of the parameters in OnGeneratedPasswordAccepted.

Bug: 1027152
Change-Id: I1005d4982f16e0413e646261df6ea49c39285ad9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1929243Reviewed-by: default avatarJan Wilken Dörrie <jdoerrie@chromium.org>
Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#717740}
parent c1f4c874
......@@ -722,7 +722,9 @@ void PasswordFormManager::OnGeneratedPasswordAccepted(
return generation_element_id ==
field_data.unique_renderer_id;
});
DCHECK(it != form_data.fields.end());
// The parameters are coming from the renderer and can't be trusted.
if (it == form_data.fields.end())
return;
it->value = password;
std::unique_ptr<PasswordForm> parsed_form =
ParseFormAndMakeLogging(form_data, FormDataParser::Mode::kSaving);
......
......@@ -2496,6 +2496,14 @@ TEST_F(PasswordFormManagerTestWithMockedSaver, PasswordNoLongerGenerated) {
CheckPasswordGenerationUKM(test_ukm_recorder, expected_metrics);
}
TEST_F(PasswordFormManagerTestWithMockedSaver,
OnGeneratedPasswordAccepted_InvalidField) {
FormData form_data = observed_form_only_password_fields_;
// A call with a non-existent password field should not crash.
form_manager_->OnGeneratedPasswordAccepted(std::move(form_data), 12345,
ASCIIToUTF16("new_password"));
}
TEST_F(PasswordFormManagerTestWithMockedSaver, SaveHttpAuthNoHttpAuthStored) {
TestMockTimeTaskRunner::ScopedContext scoped_context(task_runner_.get());
for (bool html_credentials_saved : {false, true}) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment