Merge pull request #11268 from electron/fix_crash

Don't access unique pointer after it was moved from
This commit is contained in:
Charles Kerr 2017-11-27 19:20:44 +01:00 committed by GitHub
commit e24cd329d9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -800,10 +800,12 @@ void InspectableWebContentsImpl::OnURLFetchComplete(
DCHECK(it != pending_requests_.end()); DCHECK(it != pending_requests_.end());
base::DictionaryValue response; base::DictionaryValue response;
auto headers = base::MakeUnique<base::DictionaryValue>();
net::HttpResponseHeaders* rh = source->GetResponseHeaders(); net::HttpResponseHeaders* rh = source->GetResponseHeaders();
response.SetInteger("statusCode", rh ? rh->response_code() : 200); response.SetInteger("statusCode", rh ? rh->response_code() : 200);
response.Set("headers", std::move(headers));
{
auto headers = base::MakeUnique<base::DictionaryValue>();
size_t iterator = 0; size_t iterator = 0;
std::string name; std::string name;
@ -811,6 +813,9 @@ void InspectableWebContentsImpl::OnURLFetchComplete(
while (rh && rh->EnumerateHeaderLines(&iterator, &name, &value)) while (rh && rh->EnumerateHeaderLines(&iterator, &name, &value))
headers->SetString(name, value); headers->SetString(name, value);
response.Set("headers", std::move(headers));
}
it->second.Run(&response); it->second.Run(&response);
pending_requests_.erase(it); pending_requests_.erase(it);
delete source; delete source;