BUG/MAJOR: stick_table: Complete incomplete SEGV fix

This commit completes the incomplete segmentation fault fix
in commit ac1f3ed64b.

Likewise it must be backported to haproxy 1.8.
This commit is contained in:
Tim Duesterhus 2018-06-26 15:57:29 +02:00 committed by Willy Tarreau
parent 091d827e09
commit 65189c17c6
2 changed files with 34 additions and 2 deletions

View File

@ -0,0 +1,30 @@
# Shipped with the commit fixing the bug.
varnishtest "Stick Table: Crash when accessing unknown key."
feature ignore_unknown_macro
server s0 {
rxreq
txresp
} -start
haproxy h0 -conf {
defaults
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend test
mode http
bind "fd@${fe1}"
stick-table type ip size 1m expire 1h store gpc0
http-request deny if { src,table_trackers(test) eq 1 }
http-request deny if { src,in_table(test) }
http-request deny deny_status 200
} -start
client c0 -connect ${h0_fe1_sock} {
txreq -url "/"
rxresp
expect resp.status == 200
} -run

View File

@ -1596,8 +1596,10 @@ static int sample_conv_table_trackers(const struct arg *arg_p, struct sample *sm
smp->data.type = SMP_T_SINT;
smp->data.u.sint = 0;
if (ts)
smp->data.u.sint = ts->ref_cnt;
if (!ts)
return 1;
smp->data.u.sint = ts->ref_cnt;
stktable_release(t, ts);
return 1;