]> git.baikalelectronics.ru Git - kernel.git/commit
netfilter: nf_tables: fix addition/deletion of elements from commit/abort
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 20 Feb 2015 16:11:10 +0000 (17:11 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Sun, 22 Feb 2015 20:05:08 +0000 (21:05 +0100)
commit94f8c7cf45c22a48d9f9c493731208641b245ab3
tree2b3587d9765bf0cb7bab99b3cc60a77945608008
parent8f0190b80b55ae7d742546928b8798a42f40cd95
netfilter: nf_tables: fix addition/deletion of elements from commit/abort

We have several problems in this path:

1) There is a use-after-free when removing individual elements from
   the commit path.

2) We have to uninit() the data part of the element from the abort
   path to avoid a chain refcount leak.

3) We have to check for set->flags to see if there's a mapping, instead
   of the element flags.

4) We have to check for !(flags & NFT_SET_ELEM_INTERVAL_END) to skip
   elements that are part of the interval that have no data part, so
   they don't need to be uninit().

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_tables_api.c