Check for chain name attribute to release chain name, for consistency
with other existing attributes.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
struct nlattr;
int nftnl_parse_data(union nftnl_data_reg *data, struct nlattr *attr, int *type);
-void nftnl_free_verdict(const union nftnl_data_reg *data);
-
int nftnl_data_cpy(union nftnl_data_reg *dreg, const void *src, uint32_t len);
#endif
return ret;
}
-void nftnl_free_verdict(const union nftnl_data_reg *data)
-{
- switch(data->verdict) {
- case NFT_JUMP:
- case NFT_GOTO:
- xfree(data->chain);
- break;
- default:
- break;
- }
-}
-
int nftnl_data_cpy(union nftnl_data_reg *dreg, const void *src, uint32_t len)
{
int ret = 0;
{
struct nftnl_expr_immediate *imm = nftnl_expr_data(e);
- if (e->flags & (1 << NFTNL_EXPR_IMM_VERDICT))
- nftnl_free_verdict(&imm->data);
+ if (e->flags & (1 << NFTNL_EXPR_IMM_CHAIN))
+ xfree(imm->data.chain);
}
struct expr_ops expr_ops_immediate = {