MINOR: qpack: add ABORT_NOW on unimplemented decoding
Post-base indices is not supported at the moment for decoding. This should never be encountered as it is only used with a dynamic table. However, haproxy deactivates support for the dynamic table via its SETTINGS. Use ABORT_NOW() if this situation happens anyway. This should help debugging instead of silently failed without error reporting.
This commit is contained in:
parent
4bcaf69dca
commit
28d3c2489f
|
@ -212,7 +212,15 @@ int qpack_decode_fs(const unsigned char *raw, size_t len, struct buffer *tmp,
|
|||
qpack_debug_printf(stderr, "efl_type=0x%02x\n", efl_type);
|
||||
|
||||
if (efl_type == QPACK_LFL_WPBNM) {
|
||||
/* Literal field line with post-base name reference */
|
||||
/* Literal field line with post-base name reference
|
||||
*
|
||||
* TODO not implemented
|
||||
*
|
||||
* For the moment, this should never happen as
|
||||
* currently we do not support dynamic table insertion
|
||||
* and specify an empty table size.
|
||||
*/
|
||||
#if 0
|
||||
uint64_t index __maybe_unused, length;
|
||||
unsigned int n __maybe_unused, h __maybe_unused;
|
||||
|
||||
|
@ -242,12 +250,21 @@ int qpack_decode_fs(const unsigned char *raw, size_t len, struct buffer *tmp,
|
|||
goto out;
|
||||
}
|
||||
|
||||
/* XXX Value string XXX */
|
||||
raw += length;
|
||||
len -= length;
|
||||
#endif
|
||||
ABORT_NOW(); /* dynamic table not supported */
|
||||
}
|
||||
else if (efl_type == QPACK_IFL_WPBI) {
|
||||
/* Indexed field line with post-base index */
|
||||
/* Indexed field line with post-base index
|
||||
*
|
||||
* TODO not implemented
|
||||
*
|
||||
* For the moment, this should never happen as
|
||||
* currently we do not support dynamic table insertion
|
||||
* and specify an empty table size.
|
||||
*/
|
||||
#if 0
|
||||
uint64_t index __maybe_unused;
|
||||
|
||||
qpack_debug_printf(stderr, "indexed field line with post-base index:");
|
||||
|
@ -259,6 +276,8 @@ int qpack_decode_fs(const unsigned char *raw, size_t len, struct buffer *tmp,
|
|||
}
|
||||
|
||||
qpack_debug_printf(stderr, " index=%llu", (unsigned long long)index);
|
||||
#endif
|
||||
ABORT_NOW(); /* dynamic table not supported */
|
||||
}
|
||||
else if (efl_type & QPACK_IFL_BIT) {
|
||||
/* Indexed field line */
|
||||
|
|
Loading…
Reference in New Issue