diff options
author | Arturo Borrero <arturo.borrero.glez@gmail.com> | 2014-09-18 20:18:19 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2014-09-18 20:42:26 +0200 |
commit | 51fbb415440517e47ac77a9f72fb6c1bc1c6e6b5 (patch) | |
tree | db03565e218389a414cedc70bc2d896ed4823b07 | |
parent | 24cfc59f1c3a2108c8a5eb41e898d60b196aee9b (diff) |
set: fix set nlmsg desc parsing
In commit ff62959("set: add support for set mechanism selection") the
support for parsing the nested attribute (NFTA_SET_DESC) was incorrect.
Signed-off-by: Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r-- | src/set.c | 22 |
1 files changed, 2 insertions, 20 deletions
@@ -340,7 +340,7 @@ static int nft_set_desc_parse_attr_cb(const struct nlattr *attr, void *data) static int nft_set_desc_parse(struct nft_set *s, const struct nlattr *attr) { - struct nlattr *tb[NFTA_SET_MAX+1] = {}; + struct nlattr *tb[NFTA_SET_DESC_MAX + 1] = {}; if (mnl_attr_parse_nested(attr, nft_set_desc_parse_attr_cb, tb) < 0) return -1; @@ -353,24 +353,6 @@ static int nft_set_desc_parse(struct nft_set *s, return 0; } -static int nft_set_nlmsg_desc_parse(const struct nlattr *nest, - struct nft_set *s) -{ - struct nlattr *attr; - int ret = 0; - - mnl_attr_for_each_nested(attr, nest) { - if (mnl_attr_get_type(attr) != NFTA_SET_DESC) - return -1; - - ret = nft_set_desc_parse(s, attr); - if (ret != 0) - break; - } - - return ret; -} - int nft_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nft_set *s) { struct nlattr *tb[NFTA_SET_MAX+1] = {}; @@ -417,7 +399,7 @@ int nft_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nft_set *s) s->flags |= (1 << NFT_SET_ATTR_POLICY); } if (tb[NFTA_SET_DESC]) - ret = nft_set_nlmsg_desc_parse(tb[NFTA_SET_DESC], s); + ret = nft_set_desc_parse(s, tb[NFTA_SET_DESC]); s->family = nfg->nfgen_family; s->flags |= (1 << NFT_SET_ATTR_FAMILY); |