From: Stefan Eissing Date: Fri, 21 Apr 2023 10:19:22 +0000 (+0200) Subject: http2: pass `stream` to http2_handle_stream_close to avoid NULL checks X-Git-Tag: curl-8_1_0~82 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fbea71f29338cbfd2161440ff94e8c0f2eeecbc8;p=thirdparty%2Fcurl.git http2: pass `stream` to http2_handle_stream_close to avoid NULL checks Closes #11005 --- diff --git a/lib/http2.c b/lib/http2.c index 9da3cae17b..39b80a1bf4 100644 --- a/lib/http2.c +++ b/lib/http2.c @@ -1512,9 +1512,9 @@ out: static ssize_t http2_handle_stream_close(struct Curl_cfilter *cf, struct Curl_easy *data, + struct stream_ctx *stream, CURLcode *err) { - struct stream_ctx *stream = H2_STREAM_CTX(data); ssize_t rv = 0; if(stream->error == NGHTTP2_REFUSED_STREAM) { @@ -1675,7 +1675,7 @@ static ssize_t stream_recv(struct Curl_cfilter *cf, struct Curl_easy *data, if(nread < 0) { if(stream->closed) { - nread = http2_handle_stream_close(cf, data, err); + nread = http2_handle_stream_close(cf, data, stream, err); } else if(stream->reset || (ctx->conn_closed && Curl_bufq_is_empty(&ctx->inbufq)) || @@ -1975,7 +1975,7 @@ static ssize_t cf_h2_send(struct Curl_cfilter *cf, struct Curl_easy *data, goto out; } else if(stream->closed) { - nwritten = http2_handle_stream_close(cf, data, err); + nwritten = http2_handle_stream_close(cf, data, stream, err); goto out; } /* If stream_id != -1, we have dispatched request HEADERS, and now @@ -2012,7 +2012,7 @@ static ssize_t cf_h2_send(struct Curl_cfilter *cf, struct Curl_easy *data, if(should_close_session(ctx)) { if(stream->closed) { - nwritten = http2_handle_stream_close(cf, data, err); + nwritten = http2_handle_stream_close(cf, data, stream, err); } else { DEBUGF(LOG_CF(data, cf, "send: nothing to do in this session")); @@ -2062,7 +2062,7 @@ static ssize_t cf_h2_send(struct Curl_cfilter *cf, struct Curl_easy *data, if(should_close_session(ctx)) { if(stream->closed) { - nwritten = http2_handle_stream_close(cf, data, err); + nwritten = http2_handle_stream_close(cf, data, stream, err); } else { DEBUGF(LOG_CF(data, cf, "send: nothing to do in this session"));