diff --git a/lib/nghttp2_hd.c b/lib/nghttp2_hd.c index 0bf28312..1e921f54 100644 --- a/lib/nghttp2_hd.c +++ b/lib/nghttp2_hd.c @@ -1677,23 +1677,14 @@ static ssize_t hd_inflate_read(nghttp2_hd_inflater *inflater, nghttp2_buf *buf, } /* - * Finalize indexed header representation reception. If header is - * emitted, |*nv_out| is filled with that value and 0 is returned. If - * no header is emitted, 1 is returned. - * - * This function returns either 0 or 1 if it succeeds, or one of the - * following negative error codes: - * - * NGHTTP2_ERR_NOMEM - * Out of memory + * Finalize indexed header representation reception. The referenced + * header is always emitted, and |*nv_out| is filled with that value. */ -static int hd_inflate_commit_indexed(nghttp2_hd_inflater *inflater, - nghttp2_hd_nv *nv_out) { +static void hd_inflate_commit_indexed(nghttp2_hd_inflater *inflater, + nghttp2_hd_nv *nv_out) { nghttp2_hd_nv nv = nghttp2_hd_table_get(&inflater->ctx, inflater->index); emit_header(nv_out, &nv); - - return 0; } /* @@ -1944,16 +1935,11 @@ ssize_t nghttp2_hd_inflate_hd_nv(nghttp2_hd_inflater *inflater, inflater->index = inflater->left; --inflater->index; - rv = hd_inflate_commit_indexed(inflater, nv_out); - if (rv < 0) { - goto fail; - } + hd_inflate_commit_indexed(inflater, nv_out); + inflater->state = NGHTTP2_HD_STATE_OPCODE; - /* If rv == 1, no header was emitted */ - if (rv == 0) { - *inflate_flags |= NGHTTP2_HD_INFLATE_EMIT; - return (ssize_t)(in - first); - } + *inflate_flags |= NGHTTP2_HD_INFLATE_EMIT; + return (ssize_t)(in - first); } else { inflater->index = inflater->left; --inflater->index;