mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-06 13:33:02 +00:00
BUG/MAJOR: stick-counters: possible crash when using sc_trackers with wrong table
Bryan Talbot reported a very interesting bug. The sc_trackers() sample fetch seems to have escaped the sanitization that was performed during 1.5 to ensure all dereferences of stkctr_entry() were safe. Here if a tacker is set on a backend and is then checked against a different backend where the entry doesn't exist, stkctr_entry() returns NULL and this is dereferenced to retrieve the ref count. Thanks to Bryan for his detailed bug report featuring a working config and reproducer. This fix must be backported to 1.6 and 1.5.
This commit is contained in:
parent
597b26e432
commit
4d03ef7f03
@ -3262,7 +3262,7 @@ smp_fetch_sc_trackers(const struct arg *args, struct sample *smp, const char *kw
|
||||
|
||||
smp->flags = SMP_F_VOL_TEST;
|
||||
smp->data.type = SMP_T_SINT;
|
||||
smp->data.u.sint = stkctr_entry(stkctr)->ref_cnt;
|
||||
smp->data.u.sint = stkctr_entry(stkctr) ? stkctr_entry(stkctr)->ref_cnt : 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user