diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-08 21:40:42 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-08 21:40:42 +0000 |
commit | 9b407925feb1e05b4e276af32b95bef4abef3a6b (patch) | |
tree | 2430be644e119cc28ed0d4ddf3d836f420b13840 /remoting/jingle_glue | |
parent | b0ae8e0a0298364fb5125dde17e50b4e1751696d (diff) | |
download | chromium_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.h | 6 |
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_; |