diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2024-02-24 10:14:54 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2024-02-26 18:09:49 +0100 |
commit | f15f1e3feb130f131d6f03d4081b569f81b94fce (patch) | |
tree | bd9e4ee2b26a7b49939618020e3a54767381e85a | |
parent | 7e6a10e4a57aaf72c74c21d2ed7d2be8289d0f6f (diff) |
expr: immediate: check for chain attribute to release chain name
Check for chain name attribute to release chain name, for consistency
with other existing attributes.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r-- | include/data_reg.h | 2 | ||||
-rw-r--r-- | src/expr/data_reg.c | 12 | ||||
-rw-r--r-- | src/expr/immediate.c | 4 |
3 files changed, 2 insertions, 16 deletions
diff --git a/include/data_reg.h b/include/data_reg.h index 5ee7080..946354d 100644 --- a/include/data_reg.h +++ b/include/data_reg.h @@ -35,8 +35,6 @@ int nftnl_data_reg_snprintf(char *buf, size_t size, 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 diff --git a/src/expr/data_reg.c b/src/expr/data_reg.c index 690b23d..d2ccf2e 100644 --- a/src/expr/data_reg.c +++ b/src/expr/data_reg.c @@ -206,18 +206,6 @@ int nftnl_parse_data(union nftnl_data_reg *data, struct nlattr *attr, int *type) 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; diff --git a/src/expr/immediate.c b/src/expr/immediate.c index f56aa8f..acc01a1 100644 --- a/src/expr/immediate.c +++ b/src/expr/immediate.c @@ -214,8 +214,8 @@ static void nftnl_expr_immediate_free(const struct nftnl_expr *e) { 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 = { |