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.
diff --git a/src/qpack-dec.c b/src/qpack-dec.c
index 5546590..aac35a6 100644
--- a/src/qpack-dec.c
+++ b/src/qpack-dec.c
@@ -212,7 +212,15 @@
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 @@
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 @@
}
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 */