summaryrefslogtreecommitdiffstats
path: root/remoting/jingle_glue
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-08 21:40:42 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-08 21:40:42 +0000
commit9b407925feb1e05b4e276af32b95bef4abef3a6b (patch)
tree2430be644e119cc28ed0d4ddf3d836f420b13840 /remoting/jingle_glue
parentb0ae8e0a0298364fb5125dde17e50b4e1751696d (diff)
downloadchromium_src-9b407925feb1e05b4e276af32b95bef4abef3a6b.zip
chromium_src-9b407925feb1e05b4e276af32b95bef4abef3a6b.tar.gz
chromium_src-9b407925feb1e05b4e276af32b95bef4abef3a6b.tar.bz2
Fix destruction order in SSLSocketAdapter.
SSLClientSocket must be destroyed before CertVerifier. Otherwise CertVerifierJist::DeleteAllCancelled() may DCHECK when closing XMPP connection. TEST=Host doesn't crash when destroying connection. BUG=94105 Review URL: http://codereview.chromium.org/7861003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100258 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/jingle_glue')
-rw-r--r--remoting/jingle_glue/ssl_socket_adapter.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/remoting/jingle_glue/ssl_socket_adapter.h b/remoting/jingle_glue/ssl_socket_adapter.h
index 388bd1c..e990310 100644
--- a/remoting/jingle_glue/ssl_socket_adapter.h
+++ b/remoting/jingle_glue/ssl_socket_adapter.h
@@ -135,8 +135,12 @@ class SSLSocketAdapter : public talk_base::SSLAdapter {
bool ignore_bad_cert_;
std::string hostname_;
TransportSocket* transport_socket_;
- scoped_ptr<net::SSLClientSocket> ssl_socket_;
+
+ // |cert_verifier_| must be defined before |ssl_socket_|, so that
+ // it's destroyed after |ssl_socket_|.
scoped_ptr<net::CertVerifier> cert_verifier_;
+ scoped_ptr<net::SSLClientSocket> ssl_socket_;
+
net::CompletionCallbackImpl<SSLSocketAdapter> connected_callback_;
net::CompletionCallbackImpl<SSLSocketAdapter> read_callback_;
net::CompletionCallbackImpl<SSLSocketAdapter> write_callback_;