mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-13 14:24:11 +08:00
netfilter: nf_tables: set element extended ACK reporting support
commit b53c116642
upstream.
Report the element that causes problems via netlink extended ACK for set
element commands.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
9dd6e5296c
commit
61fbbac22c
@ -4523,8 +4523,10 @@ static int nf_tables_getsetelem(struct net *net, struct sock *nlsk,
|
|||||||
|
|
||||||
nla_for_each_nested(attr, nla[NFTA_SET_ELEM_LIST_ELEMENTS], rem) {
|
nla_for_each_nested(attr, nla[NFTA_SET_ELEM_LIST_ELEMENTS], rem) {
|
||||||
err = nft_get_set_elem(&ctx, set, attr);
|
err = nft_get_set_elem(&ctx, set, attr);
|
||||||
if (err < 0)
|
if (err < 0) {
|
||||||
|
NL_SET_BAD_ATTR(extack, attr);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
@ -4902,8 +4904,10 @@ static int nf_tables_newsetelem(struct net *net, struct sock *nlsk,
|
|||||||
|
|
||||||
nla_for_each_nested(attr, nla[NFTA_SET_ELEM_LIST_ELEMENTS], rem) {
|
nla_for_each_nested(attr, nla[NFTA_SET_ELEM_LIST_ELEMENTS], rem) {
|
||||||
err = nft_add_set_elem(&ctx, set, attr, nlh->nlmsg_flags);
|
err = nft_add_set_elem(&ctx, set, attr, nlh->nlmsg_flags);
|
||||||
if (err < 0)
|
if (err < 0) {
|
||||||
|
NL_SET_BAD_ATTR(extack, attr);
|
||||||
return err;
|
return err;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nft_net->validate_state == NFT_VALIDATE_DO)
|
if (nft_net->validate_state == NFT_VALIDATE_DO)
|
||||||
@ -5103,9 +5107,10 @@ static int nf_tables_delsetelem(struct net *net, struct sock *nlsk,
|
|||||||
|
|
||||||
nla_for_each_nested(attr, nla[NFTA_SET_ELEM_LIST_ELEMENTS], rem) {
|
nla_for_each_nested(attr, nla[NFTA_SET_ELEM_LIST_ELEMENTS], rem) {
|
||||||
err = nft_del_setelem(&ctx, set, attr);
|
err = nft_del_setelem(&ctx, set, attr);
|
||||||
if (err < 0)
|
if (err < 0) {
|
||||||
|
NL_SET_BAD_ATTR(extack, attr);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
set->ndeact++;
|
set->ndeact++;
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
|
Loading…
Reference in New Issue
Block a user