diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-03 00:13:25 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-03 00:13:25 +0000 |
commit | 3c64fc96b1860c4b1e63275e0cd671bdb24cf8ef (patch) | |
tree | 130f59ebe30e72277851e18968b1b0c5ed58b4f5 /content/renderer/p2p | |
parent | 5c1014cf6ef218aae0c8cc492caefb8ae04bcfdd (diff) | |
download | chromium_src-3c64fc96b1860c4b1e63275e0cd671bdb24cf8ef.zip chromium_src-3c64fc96b1860c4b1e63275e0cd671bdb24cf8ef.tar.gz chromium_src-3c64fc96b1860c4b1e63275e0cd671bdb24cf8ef.tar.bz2 |
Fix crash when resolving stun address
BUG=94996
TEST=Chromoting client doesn't crash when resolving stun addresses.
Review URL: http://codereview.chromium.org/7823015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99481 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/p2p')
-rw-r--r-- | content/renderer/p2p/host_address_request.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/content/renderer/p2p/host_address_request.cc b/content/renderer/p2p/host_address_request.cc index 9b11602..57c63ff 100644 --- a/content/renderer/p2p/host_address_request.cc +++ b/content/renderer/p2p/host_address_request.cc @@ -22,6 +22,7 @@ P2PHostAddressRequest::P2PHostAddressRequest(P2PSocketDispatcher* dispatcher) P2PHostAddressRequest::~P2PHostAddressRequest() { DCHECK(state_ == STATE_CREATED || state_ == STATE_FINISHED); + DCHECK(!registered_); } void P2PHostAddressRequest::Request(const std::string& host_name, @@ -64,10 +65,13 @@ void P2PHostAddressRequest::DoUnregister() { void P2PHostAddressRequest::OnResponse(const net::IPAddressNumber& address) { DCHECK(ipc_message_loop_->BelongsToCurrentThread()); - delegate_message_loop_->PostTask(FROM_HERE, base::Bind( - &P2PHostAddressRequest::DeliverResponse, this, address)); + DCHECK(registered_); + dispatcher_->UnregisterHostAddressRequest(request_id_); registered_ = false; + + delegate_message_loop_->PostTask(FROM_HERE, base::Bind( + &P2PHostAddressRequest::DeliverResponse, this, address)); } void P2PHostAddressRequest::DeliverResponse( |