PasswordAutofillAgent: do not store NULL key in provisionally_saved_forms_
commit378de219c7e7735be89c6a125e097cd65baf5837
authorvabr <vabr@chromium.org>
Tue, 7 Oct 2014 13:01:43 +0000 (7 06:01 -0700)
committerCommit bot <commit-bot@chromium.org>
Tue, 7 Oct 2014 13:02:12 +0000 (7 13:02 +0000)
tree1a119789db5f63f220e86b796eac944ddb05862d
parentc41cfec3285c48e77f20dd0f3bf356246797a986
PasswordAutofillAgent: do not store NULL key in provisionally_saved_forms_

PasswordAutofillAgent::provisionally_saved_forms_ is currently queried for forms associated to WebFrame pointers by passing that pointer to the map directly through [] operator. This operator creates a key-value pair as a side effect. Moreover, at once place, this pointer can be NULL. As a result, the map gets sometimes populated with entries having a NULL key, which is later dereferenced.

This CL does 2 things:
(1) Changes code testing whether the map contains a WebFrame* so that no new entries are added to the map by such test.
(2) Eliminates the use of NULL as key in PasswordAutofillAgent::DidStartProvisionalLoad

This CL lacks tests, because although the NULL-dereference already happened in the wild, it is not clear how to reproduce that. The tests will be hopefully added as investigating progresses, but this CL should land first to stop the crashes.

BUG=420519

Review URL: https://codereview.chromium.org/630083002

Cr-Commit-Position: refs/heads/master@{#298450}
components/autofill/content/renderer/password_autofill_agent.cc