Subject: HPACK: Invalid Maximum Table Size

From: "Simpson, Robby (GE Energy Management)" <[email-masked]>
Date: Mon, 12 Jan 2015 15:14:17 +0000

Section 4.2 of draft-ietf-httpbis-header-compression-10 states:
> Protocols that use HPACK determine the maximum size that the encoder
> is permitted to use for the dynamic table.  In HTTP/2, this value is
> determined by the SETTINGS_HEADER_TABLE_SIZE setting (see
> Section 6.5.2 of [HTTP2]).

> An encoder can choose to use less capacity than this maximum size
> (see Section 6.3), but the chosen size MUST stay lower than or equal
> to the maximum set by the protocol.

I could not find any text stating what should occur if the requirement
(MUST) is violated.

In other words, if an encoder specifies a maximum table size larger than
the decoder's SETTINGS_HEADER_TABLE_SIZE setting, what should occur?

I'm guessing this would be a connection error of type COMPRESSION_ERROR,
as the compression state is likely ruined at that point.

Given this can result in compression state mismatch, I think we need
explicit text stating the handling.  Should said text go in
draft-ietf-httpbis-header-compression or draft-ietf-httpbis-http2, as it
appears that draft-ietf-httpbis-header-compression attempts to be
protocol-agnostic?

Thanks,
Robby

---

From: Martin Thomson <[email-masked]>
Date: Sun, 18 Jan 2015 13:04:36 -0800

Opened as https://github.com/http2/http2-spec/issues/676