Commit 5940284b authored by rch@chromium.org's avatar rch@chromium.org

Change a DCHECK into a CHECK in SpdySession::WriteStreamData to ensure that...

Change a DCHECK into a CHECK in SpdySession::WriteStreamData to ensure that we're not attempting to write data on a stream that is not active. Attempting to track down a crash willchan noticed.


Review URL: http://codereview.chromium.org/10267021

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134744 0039d316-1c4b-4281-b951-d872f2087c98
parent 7b121b7e
...@@ -752,10 +752,8 @@ int SpdySession::WriteStreamData(SpdyStreamId stream_id, ...@@ -752,10 +752,8 @@ int SpdySession::WriteStreamData(SpdyStreamId stream_id,
net::IOBuffer* data, int len, net::IOBuffer* data, int len,
SpdyDataFlags flags) { SpdyDataFlags flags) {
// Find our stream // Find our stream
DCHECK(IsStreamActive(stream_id)); CHECK(IsStreamActive(stream_id));
scoped_refptr<SpdyStream> stream = active_streams_[stream_id]; scoped_refptr<SpdyStream> stream = active_streams_[stream_id];
if (!stream)
return ERR_INVALID_SPDY_STREAM;
CHECK_EQ(stream->stream_id(), stream_id); CHECK_EQ(stream->stream_id(), stream_id);
if (len > kMaxSpdyFrameChunkSize) { if (len > kMaxSpdyFrameChunkSize) {
...@@ -1508,8 +1506,7 @@ void SpdySession::OnSynReply(const SpdySynReplyControlFrame& frame, ...@@ -1508,8 +1506,7 @@ void SpdySession::OnSynReply(const SpdySynReplyControlFrame& frame,
stream_id, 0))); stream_id, 0)));
} }
bool valid_stream = IsStreamActive(stream_id); if (!IsStreamActive(stream_id)) {
if (!valid_stream) {
// NOTE: it may just be that the stream was cancelled. // NOTE: it may just be that the stream was cancelled.
LOG(WARNING) << "Received SYN_REPLY for invalid stream " << stream_id; LOG(WARNING) << "Received SYN_REPLY for invalid stream " << stream_id;
return; return;
...@@ -1543,8 +1540,7 @@ void SpdySession::OnHeaders(const SpdyHeadersControlFrame& frame, ...@@ -1543,8 +1540,7 @@ void SpdySession::OnHeaders(const SpdyHeadersControlFrame& frame,
stream_id, 0))); stream_id, 0)));
} }
bool valid_stream = IsStreamActive(stream_id); if (!IsStreamActive(stream_id)) {
if (!valid_stream) {
// NOTE: it may just be that the stream was cancelled. // NOTE: it may just be that the stream was cancelled.
LOG(WARNING) << "Received HEADERS for invalid stream " << stream_id; LOG(WARNING) << "Received HEADERS for invalid stream " << stream_id;
return; return;
...@@ -1570,8 +1566,7 @@ void SpdySession::OnRstStream(const SpdyRstStreamControlFrame& frame) { ...@@ -1570,8 +1566,7 @@ void SpdySession::OnRstStream(const SpdyRstStreamControlFrame& frame) {
make_scoped_refptr( make_scoped_refptr(
new NetLogSpdyRstParameter(stream_id, frame.status(), ""))); new NetLogSpdyRstParameter(stream_id, frame.status(), "")));
bool valid_stream = IsStreamActive(stream_id); if (!IsStreamActive(stream_id)) {
if (!valid_stream) {
// NOTE: it may just be that the stream was cancelled. // NOTE: it may just be that the stream was cancelled.
LOG(WARNING) << "Received RST for invalid stream" << stream_id; LOG(WARNING) << "Received RST for invalid stream" << stream_id;
return; return;
...@@ -1679,7 +1674,7 @@ void SpdySession::OnWindowUpdate( ...@@ -1679,7 +1674,7 @@ void SpdySession::OnWindowUpdate(
void SpdySession::SendWindowUpdate(SpdyStreamId stream_id, void SpdySession::SendWindowUpdate(SpdyStreamId stream_id,
int32 delta_window_size) { int32 delta_window_size) {
DCHECK(IsStreamActive(stream_id)); CHECK(IsStreamActive(stream_id));
scoped_refptr<SpdyStream> stream = active_streams_[stream_id]; scoped_refptr<SpdyStream> stream = active_streams_[stream_id];
CHECK_EQ(stream->stream_id(), stream_id); CHECK_EQ(stream->stream_id(), stream_id);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment