Subject: [quicwg/base-drafts] QPACK does not specify how to handle invalid input on control streams (#1683)

From: afrind <[email-masked]>
Date: Fri, 17 Aug 2018 16:14:11 -0700

>From Bence via the mailing list:

It is possible for a peer to receive invalid data on the encoder or decoder stream.  For example, on the encoder stream, a Duplicate instruction might address an already evicted entry.  Or on the decoder stream, a Table State Synchronize might contain an Insert Count exceeding the total number of applicable inserts and duplications, or the Header Acknowledgement might contain a Stream ID for which there are no unacknowledged header blocks.  As far as I can tell, the spec currently gives no direction on what should happen in such cases.

I propose that these should be treated as connection errors.

HTTP_QPACK_DECOMPRESSION_FAILED seems like a relevant error code, but it does not really match any of these cases (strictly speaking, these errors do not happen during decompression), especially incorrect data on the decoder stream (because it is the encoder, not the decoder,
that detects the error).  Should there be one error code covering all these cases, something like HTTP_QPACK_ERROR?  Or should there be multiple, like HTTP_QPACK_DECOMPRESSION_FAILED for errors on HEADERS and PUSH_PROMISE frames, and self-explanatory HTTP_QPACK_ENCODER_STREAM_ERROR and HTTP_QPACK_DECODER_STREAM_ERROR?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/1683