summaryrefslogtreecommitdiff
path: root/net/caif/cfsrvl.c
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2020-03-22 03:22:01 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2020-03-24 19:59:37 +0100
commit7c84d41416d836ef7e533bd4d64ccbdf40c5ac70 (patch)
tree15ae30f3a19627daef28fa3b11c32c701cada086 /net/caif/cfsrvl.c
parent6f7c9caf017be8ab0fe3b99509580d0793bf0833 (diff)
netfilter: nft_set_rbtree: Detect partial overlaps on insertion
...and return -ENOTEMPTY to the front-end in this case, instead of proceeding. Currently, nft takes care of checking for these cases and not sending them to the kernel, but if we drop the set_overlap() call in nft we can end up in situations like: # nft add table t # nft add set t s '{ type inet_service ; flags interval ; }' # nft add element t s '{ 1 - 5 }' # nft add element t s '{ 6 - 10 }' # nft add element t s '{ 4 - 7 }' # nft list set t s table ip t { set s { type inet_service flags interval elements = { 1-3, 4-5, 6-7 } } } This change has the primary purpose of making the behaviour consistent with nft_set_pipapo, but is also functional to avoid inconsistent behaviour if userspace sends overlapping elements for any reason. v2: When we meet the same key data in the tree, as start element while inserting an end element, or as end element while inserting a start element, actually check that the existing element is active, before resetting the overlap flag (Pablo Neira Ayuso) Signed-off-by: Stefano Brivio <sbrivio@redhat.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/caif/cfsrvl.c')
0 files changed, 0 insertions, 0 deletions