Repository: trafficserver Updated Branches: refs/heads/master 0d4c680e1 -> 0d8f08334
TS-4011: HTTP/2 coredump with NULL FetchSM, another one Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/0d8f0833 Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/0d8f0833 Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/0d8f0833 Branch: refs/heads/master Commit: 0d8f083341300f7dfb384b4139c34d53a843c52d Parents: 0d4c680 Author: Bryan Call <[email protected]> Authored: Tue Nov 10 10:54:43 2015 -0800 Committer: Bryan Call <[email protected]> Committed: Tue Nov 10 10:54:43 2015 -0800 ---------------------------------------------------------------------- proxy/http2/Http2ConnectionState.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/0d8f0833/proxy/http2/Http2ConnectionState.cc ---------------------------------------------------------------------- diff --git a/proxy/http2/Http2ConnectionState.cc b/proxy/http2/Http2ConnectionState.cc index d6c4775..54e97f8 100644 --- a/proxy/http2/Http2ConnectionState.cc +++ b/proxy/http2/Http2ConnectionState.cc @@ -836,7 +836,7 @@ Http2ConnectionState::restart_streams() Http2Stream *s = stream_list.head; while (s) { Http2Stream *next = s->link.next; - if (s->get_fetcher() != NULL && min(this->client_rwnd, s->client_rwnd) > 0) { + if (min(this->client_rwnd, s->client_rwnd) > 0) { this->send_data_frame(s->get_fetcher()); } s = next; @@ -887,6 +887,10 @@ Http2ConnectionState::send_data_frame(FetchSM *fetch_sm) { DebugSsn(this->ua_session, "http2_cs", "[%" PRId64 "] Send DATA frame", this->ua_session->connection_id()); + if (fetch_sm == NULL) { + return; + } + size_t buf_len = BUFFER_SIZE_FOR_INDEX(buffer_size_index[HTTP2_FRAME_TYPE_DATA]) - HTTP2_FRAME_HEADER_LEN; uint8_t payload_buffer[buf_len];
