diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-21 18:08:50 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-21 18:08:50 +0000 |
commit | 0b0bf036e2c2722b5d31162ad620b450763fa352 (patch) | |
tree | bbeeb3eaaa34df96d3f947d63280a93746837536 /net/net.gyp | |
parent | 78859c7d87db4433d068533b104c7c1addf7e7eb (diff) | |
download | chromium_src-0b0bf036e2c2722b5d31162ad620b450763fa352.zip chromium_src-0b0bf036e2c2722b5d31162ad620b450763fa352.tar.gz chromium_src-0b0bf036e2c2722b5d31162ad620b450763fa352.tar.bz2 |
Reland r59910 - Add HttpResponseBodyDrainer. Use it for unfinished HttpStreams."
There's one simple fix. wtc had asked me to increment the buffer so we keep reading into new memory while draining the body. So I added |total_read_| to |read_buf_|. The problem is |read_buf_| is an IOBuffer*, not a char*, so I'm causing us to read into raw heap memory. Crashes ensue. My unit tests didn't catch it because they never actually read data. I've fixed that by doing a memset(). I've fixed the problem by not bothering to increment the read index, since that would require throwing away IOBuffers or some intrusive modifications to IOBuffer.
BUG=54277
TEST=HttpResponseBodyDrainerTest.*
Also see the manual testing instructions in r59910.
Review URL: http://codereview.chromium.org/3449014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60075 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/net.gyp')
-rw-r--r-- | net/net.gyp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/net.gyp b/net/net.gyp index 10a4d8d..080b5b0 100644 --- a/net/net.gyp +++ b/net/net.gyp @@ -429,6 +429,8 @@ 'http/http_request_headers.cc', 'http/http_request_headers.h', 'http/http_request_info.h', + 'http/http_response_body_drainer.cc', + 'http/http_response_body_drainer.h', 'http/http_response_headers.cc', 'http/http_response_headers.h', 'http/http_response_info.cc', @@ -806,6 +808,7 @@ 'http/http_network_transaction_unittest.cc', 'http/http_proxy_client_socket_pool_unittest.cc', 'http/http_request_headers_unittest.cc', + 'http/http_response_body_drainer_unittest.cc', 'http/http_response_headers_unittest.cc', 'http/http_transaction_unittest.cc', 'http/http_transaction_unittest.h', |