summaryrefslogtreecommitdiffstats
path: root/net/http/http_network_transaction.cc
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-06 00:30:25 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-06 00:30:25 +0000
commit9172a9864a38e07f5f47d05ce31b0b8aa064b8b4 (patch)
treebe1c1e136e61eba25b31db3b19bc41c87b633b3c /net/http/http_network_transaction.cc
parentb96f37d0d4d2425175194bd6fb5dc4458d47971b (diff)
downloadchromium_src-9172a9864a38e07f5f47d05ce31b0b8aa064b8b4.zip
chromium_src-9172a9864a38e07f5f47d05ce31b0b8aa064b8b4.tar.gz
chromium_src-9172a9864a38e07f5f47d05ce31b0b8aa064b8b4.tar.bz2
Fix crash on fallback in HttpNetworkTransaction::ReconsiderProxyAfterError().
If the socket doesn't exist, don't try to Disconnect() it. BUG=http://www.crbug.com/13375 TEST=See bug for repro. Review URL: http://codereview.chromium.org/119228 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17808 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http/http_network_transaction.cc')
-rw-r--r--net/http/http_network_transaction.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
index f65cabc..5795011 100644
--- a/net/http/http_network_transaction.cc
+++ b/net/http/http_network_transaction.cc
@@ -1337,7 +1337,10 @@ int HttpNetworkTransaction::ReconsiderProxyAfterError(int error) {
int rv = session_->proxy_service()->ReconsiderProxyAfterError(
request_->url, &proxy_info_, &io_callback_, &pac_request_);
if (rv == OK || rv == ERR_IO_PENDING) {
- connection_.socket()->Disconnect();
+ // If the error was during connection setup, there is no socket to
+ // disconnect.
+ if (connection_.socket())
+ connection_.socket()->Disconnect();
connection_.Reset();
DCHECK(!request_headers_bytes_sent_);
next_state_ = STATE_RESOLVE_PROXY_COMPLETE;