[ 
https://issues.apache.org/jira/browse/TS-3822?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14659245#comment-14659245
 ] 

Masakazu Kitajo commented on TS-3822:
-------------------------------------

Strictly speaking, we need to find a stream to check if the stream is open 
state, and then return other error. The case happens when endpoint sends 
HEADERS frame w/o END_STREAM flag more than once on the same stream.

However, the change is reasonable for 6.0.0. The case above should be care with 
a h2spec testcase.

> clang-analyzer: Value stored to 'stream' during its initialization is never 
> read
> --------------------------------------------------------------------------------
>
>                 Key: TS-3822
>                 URL: https://issues.apache.org/jira/browse/TS-3822
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: HTTP/2
>            Reporter: Leif Hedstrom
>            Assignee: Leif Hedstrom
>             Fix For: 6.0.0
>
>
>   Http2Stream *stream = cstate.find_stream(id);
> Value stored to 'stream' during its initialization is never read
> Assuming the code is correct, I suggest the following patch:
> {code}
> diff --git a/proxy/http2/Http2ConnectionState.cc 
> b/proxy/http2/Http2ConnectionState.cc
> index 4244468..3d94dfd 100644
> --- a/proxy/http2/Http2ConnectionState.cc
> +++ b/proxy/http2/Http2ConnectionState.cc
> @@ -173,13 +173,13 @@ rcv_headers_frame(Http2ClientSession &cs, 
> Http2ConnectionState &cstate, const Ht
>      return Http2Error(HTTP2_ERROR_CLASS_CONNECTION, 
> HTTP2_ERROR_PROTOCOL_ERROR);
>    }
>  
> -  Http2Stream *stream = cstate.find_stream(id);
>    if (id <= cstate.get_latest_stream_id()) {
>      return Http2Error(HTTP2_ERROR_CLASS_STREAM, HTTP2_ERROR_STREAM_CLOSED);
>    }
>  
>    // Create new stream
> -  stream = cstate.create_stream(id);
> +  Http2Stream *stream = cstate.create_stream(id);
> +
>    if (!stream) {
>      return Http2Error(HTTP2_ERROR_CLASS_CONNECTION, 
> HTTP2_ERROR_PROTOCOL_ERROR);
>    }
> {code}
> [~masaori],  [~rokubo] or [~maskit] Does that seem reasonable?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to