diff options
author | Florian Westphal <fw@strlen.de> | 2024-09-23 00:16:02 +0200 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2024-09-23 11:35:57 +0200 |
commit | 83930cea4130b6232af36bb869b67f829db534ed (patch) | |
tree | d5726eab2a4eec314c2ca8ba55aaf4a16c3ccafb /src | |
parent | 116e95aa7b6358c917de8c69f6f173874030b46b (diff) |
expr: dynset: validate expressions are of nested type
This was not handled in the switch statement so far.
Also, use proper max value, SET_MAX is larger than what is needed for
parsing.
Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'src')
-rw-r--r-- | src/expr/dynset.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/expr/dynset.c b/src/expr/dynset.c index 8a159f8..9d2bfe5 100644 --- a/src/expr/dynset.c +++ b/src/expr/dynset.c @@ -118,7 +118,7 @@ static int nftnl_expr_dynset_cb(const struct nlattr *attr, void *data) const struct nlattr **tb = data; int type = mnl_attr_get_type(attr); - if (mnl_attr_type_valid(attr, NFTA_SET_MAX) < 0) + if (mnl_attr_type_valid(attr, NFTA_DYNSET_MAX) < 0) return MNL_CB_OK; switch (type) { @@ -139,6 +139,7 @@ static int nftnl_expr_dynset_cb(const struct nlattr *attr, void *data) abi_breakage(); break; case NFTA_DYNSET_EXPR: + case NFTA_DYNSET_EXPRESSIONS: if (mnl_attr_validate(attr, MNL_TYPE_NESTED) < 0) abi_breakage(); break; @@ -225,7 +226,7 @@ static int nftnl_expr_dynset_parse(struct nftnl_expr *e, struct nlattr *attr) { struct nftnl_expr_dynset *dynset = nftnl_expr_data(e); - struct nlattr *tb[NFTA_SET_MAX+1] = {}; + struct nlattr *tb[NFTA_DYNSET_MAX+1] = {}; struct nftnl_expr *expr, *next; int ret = 0; |