haproxy/ebtree
Willy Tarreau d19ec7d502 BUG/MAJOR: ebtree/scope: fix insertion and removal of duplicates in scope-aware trees
Commit ca30839 and following ("MINOR: ebtree: implement the scope-aware
functions for eb32") improperly dealt with the scope in duplicate trees.
The insertion was too lenient in that it would always mark the whole
rightmost chain below the insertion point, and the removal could leave
marks of non-existing scopes causing next()/first() to visit the wrong
branch and return NULL.

For insertion, we must only tag the nodes between the head of the dup
tree and the insertion point which is the top of the lowest subtree. For
removal, the new scope must be be calculated by oring the scopes of the
two new branches and is irrelevant to the previous values.

No backport is needed, this is purely 1.8-specific.
2017-11-13 19:34:09 +01:00
..
compiler.h
eb32sctree.c BUG/MAJOR: ebtree/scope: fix insertion and removal of duplicates in scope-aware trees 2017-11-13 19:34:09 +01:00
eb32sctree.h MINOR: ebtree: implement eb32sc_lookup_ge_or_first() 2017-11-06 11:20:11 +01:00
eb32tree.c
eb32tree.h MINOR: ebtree: add new eb_next_dup/eb_prev_dup() functions to visit duplicates 2013-05-07 16:10:02 +02:00
eb64tree.c
eb64tree.h MINOR: ebtree: add new eb_next_dup/eb_prev_dup() functions to visit duplicates 2013-05-07 16:10:02 +02:00
ebimtree.c
ebimtree.h MINOR: protect ebimtree/ebistree against multiple inclusions 2014-03-15 07:48:25 +01:00
ebistree.c
ebistree.h MINOR: protect ebimtree/ebistree against multiple inclusions 2014-03-15 07:48:25 +01:00
ebmbtree.c
ebmbtree.h DOC: ebtree: indicate that prefix insertion/lookup may be used with strings 2014-05-10 08:36:19 +02:00
ebpttree.c
ebpttree.h MINOR: ebtree: add new eb_next_dup/eb_prev_dup() functions to visit duplicates 2013-05-07 16:10:02 +02:00
ebsttree.c
ebsttree.h
ebtree.c
ebtree.h OPTIM: ebtree: pack the struct eb_node to avoid holes on 64-bit 2013-12-07 01:36:08 +01:00
LICENSE