mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-13 23:14:46 +00:00
007257ebab
(from ebtree 6.0.7) Julien Thomas provided a reproducible test case where a string lookup could return the wrong node. The issue is caused by the jump to a node which contains less bit in common than the previous node, making the string_equal_bits() function return -1. We must not remember more bits than the number on the node, otherwise we can be tempted to trust them while they can change while running down. For a valid test case, enter : "0", "WW", "W", "S", and lookup "W". Previously, "S" was returned. Note: string-based ebtrees are used in haproxy in ACL, peers and stick-tables. ACLs are not affected because all patterns are interchangeable. stick-tables are not affected because lookups are performed using ebmb_lookup(). Only peers might be affected though it is not easy to infirm or confirm the issue. (cherry picked from commit dd47a54103597458887d3cc8414853a541aee9c1) |
||
---|---|---|
.. | ||
compiler.h | ||
eb32tree.c | ||
eb32tree.h | ||
eb64tree.c | ||
eb64tree.h | ||
ebimtree.c | ||
ebimtree.h | ||
ebistree.c | ||
ebistree.h | ||
ebmbtree.c | ||
ebmbtree.h | ||
ebpttree.c | ||
ebpttree.h | ||
ebsttree.c | ||
ebsttree.h | ||
ebtree.c | ||
ebtree.h | ||
LICENSE |