summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browser_about_handler.h
diff options
context:
space:
mode:
authorsimonjam@chromium.org <simonjam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-30 20:57:27 +0000
committersimonjam@chromium.org <simonjam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-30 20:57:27 +0000
commitc940b7c4d7d6daab56ba8604979df1aef382e4e2 (patch)
tree683ee9cf43fe11a940516aa1697555dbd9d0c26c /chrome/browser/browser_about_handler.h
parentc242ced5b31013647094b646322149dde45460c8 (diff)
downloadchromium_src-c940b7c4d7d6daab56ba8604979df1aef382e4e2.zip
chromium_src-c940b7c4d7d6daab56ba8604979df1aef382e4e2.tar.gz
chromium_src-c940b7c4d7d6daab56ba8604979df1aef382e4e2.tar.bz2
Disconnect pipeline socket immediately on Close(true) while a Read*() is pending.
This is a speculative fix for bug 105320. The chain of events that could tickle this is: 1. A HttpNetworkTransaction is canceled while a Read is blocked. 2. When the transaction is deleted: - It calls HttpPipelinedStream::Close(true), which queues tasks to evict the other streams on the pipeline. - It deletes the HttpPipelinedStream, which deletes the active HttpStreamParser. 4. The response has already arrived and is already on the message queue. It runs and tries to callback to the deleted HttpStreamParser. We likely crash. 5. The eviction tasks run and delete their streams, which allows the HttpPipelinedConnectionImpl destructor to run, which closes the socket. BUG=105320 TEST=net_unittests Review URL: http://codereview.chromium.org/9223033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119728 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/browser_about_handler.h')
0 files changed, 0 insertions, 0 deletions