summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorArturo Borrero <arturo.borrero.glez@gmail.com>2014-09-18 20:18:19 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2014-09-18 20:42:26 +0200
commit51fbb415440517e47ac77a9f72fb6c1bc1c6e6b5 (patch)
treedb03565e218389a414cedc70bc2d896ed4823b07 /src
parent24cfc59f1c3a2108c8a5eb41e898d60b196aee9b (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>
Diffstat (limited to 'src')
-rw-r--r--src/set.c22
1 files changed, 2 insertions, 20 deletions
diff --git a/src/set.c b/src/set.c
index 3c38334..223ddec 100644
--- a/src/set.c
+++ b/src/set.c
@@ -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);