BUG/MEDIUM: stick-table: properly convert binary samples to keys
The binary sample to stick-table key conversion is wrong. It doesn't
check that the binary sample is writable before padding it. After a
quick audit, it doesn't look like any existing sample fetch function
can trigger this bug. The correct fix consists in calling smp_make_rw()
prior to padding the sample.
This fix should be backported to 1.6.
diff --git a/src/stick_table.c b/src/stick_table.c
index 13816bb..b0aabd4 100644
--- a/src/stick_table.c
+++ b/src/stick_table.c
@@ -505,6 +505,9 @@
case SMP_T_BIN:
if (smp->data.u.str.len < t->key_size) {
/* This type needs padding with 0. */
+ if (!smp_make_rw(smp))
+ return NULL;
+
if (smp->data.u.str.size < t->key_size)
if (!smp_dup(smp))
return NULL;