summaryrefslogtreecommitdiffstats
path: root/content/renderer/p2p
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-03 00:13:25 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-03 00:13:25 +0000
commit3c64fc96b1860c4b1e63275e0cd671bdb24cf8ef (patch)
tree130f59ebe30e72277851e18968b1b0c5ed58b4f5 /content/renderer/p2p
parent5c1014cf6ef218aae0c8cc492caefb8ae04bcfdd (diff)
downloadchromium_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.cc8
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(