summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/chain.c15
-rw-r--r--src/rule.c10
-rw-r--r--src/ruleset.c4
-rw-r--r--src/set.c15
-rw-r--r--src/set_elem.c15
-rw-r--r--src/table.c5
6 files changed, 16 insertions, 48 deletions
diff --git a/src/chain.c b/src/chain.c
index f5433d6..516b553 100644
--- a/src/chain.c
+++ b/src/chain.c
@@ -119,18 +119,12 @@ void nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr)
switch (attr) {
case NFTNL_CHAIN_TABLE:
- if (c->table) {
- xfree(c->table);
- c->table = NULL;
- }
+ xfree(c->table);
break;
case NFTNL_CHAIN_USE:
break;
case NFTNL_CHAIN_TYPE:
- if (c->type) {
- xfree(c->type);
- c->type = NULL;
- }
+ xfree(c->type);
break;
case NFTNL_CHAIN_NAME:
case NFTNL_CHAIN_HOOKNUM:
@@ -142,10 +136,7 @@ void nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr)
case NFTNL_CHAIN_FAMILY:
break;
case NFTNL_CHAIN_DEV:
- if (c->dev) {
- xfree(c->dev);
- c->dev = NULL;
- }
+ xfree(c->dev);
break;
default:
return;
diff --git a/src/rule.c b/src/rule.c
index 3ab29cf..bcc59a7 100644
--- a/src/rule.c
+++ b/src/rule.c
@@ -95,16 +95,10 @@ void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr)
switch (attr) {
case NFTNL_RULE_TABLE:
- if (r->table) {
- xfree(r->table);
- r->table = NULL;
- }
+ xfree(r->table);
break;
case NFTNL_RULE_CHAIN:
- if (r->chain) {
- xfree(r->chain);
- r->chain = NULL;
- }
+ xfree(r->chain);
break;
case NFTNL_RULE_HANDLE:
case NFTNL_RULE_COMPAT_PROTO:
diff --git a/src/ruleset.c b/src/ruleset.c
index 414b7c4..666bcc7 100644
--- a/src/ruleset.c
+++ b/src/ruleset.c
@@ -92,19 +92,15 @@ void nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr)
switch (attr) {
case NFTNL_RULESET_TABLELIST:
nftnl_table_list_free(r->table_list);
- r->table_list = NULL;
break;
case NFTNL_RULESET_CHAINLIST:
nftnl_chain_list_free(r->chain_list);
- r->chain_list = NULL;
break;
case NFTNL_RULESET_SETLIST:
nftnl_set_list_free(r->set_list);
- r->set_list = NULL;
break;
case NFTNL_RULESET_RULELIST:
nftnl_rule_list_free(r->rule_list);
- r->rule_list = NULL;
break;
}
r->flags &= ~(1 << attr);
diff --git a/src/set.c b/src/set.c
index c23c378..46a0007 100644
--- a/src/set.c
+++ b/src/set.c
@@ -65,20 +65,15 @@ EXPORT_SYMBOL_ALIAS(nftnl_set_is_set, nft_set_attr_is_set);
void nftnl_set_unset(struct nftnl_set *s, uint16_t attr)
{
+ if (!(s->flags & (1 << attr)))
+ return;
+
switch (attr) {
case NFTNL_SET_TABLE:
- if (s->flags & (1 << NFTNL_SET_TABLE))
- if (s->table) {
- xfree(s->table);
- s->table = NULL;
- }
+ xfree(s->table);
break;
case NFTNL_SET_NAME:
- if (s->flags & (1 << NFTNL_SET_NAME))
- if (s->name) {
- xfree(s->name);
- s->name = NULL;
- }
+ xfree(s->name);
break;
case NFTNL_SET_FLAGS:
case NFTNL_SET_KEY_TYPE:
diff --git a/src/set_elem.c b/src/set_elem.c
index 1c8ea2b..b27e5a3 100644
--- a/src/set_elem.c
+++ b/src/set_elem.c
@@ -66,14 +66,12 @@ EXPORT_SYMBOL_ALIAS(nftnl_set_elem_is_set, nft_set_elem_attr_is_set);
void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr)
{
+ if (!(s->flags & (1 << attr)))
+ return;
+
switch (attr) {
case NFTNL_SET_ELEM_CHAIN:
- if (s->flags & (1 << NFTNL_SET_ELEM_CHAIN)) {
- if (s->data.chain) {
- xfree(s->data.chain);
- s->data.chain = NULL;
- }
- }
+ xfree(s->data.chain);
break;
case NFTNL_SET_ELEM_FLAGS:
case NFTNL_SET_ELEM_KEY: /* NFTA_SET_ELEM_KEY */
@@ -86,10 +84,7 @@ void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr)
xfree(s->user.data);
break;
case NFTNL_SET_ELEM_EXPR:
- if (s->flags & (1 << NFTNL_SET_ELEM_EXPR)) {
- nftnl_expr_free(s->expr);
- s->expr = NULL;
- }
+ nftnl_expr_free(s->expr);
break;
default:
return;
diff --git a/src/table.c b/src/table.c
index 3201d40..412c6aa 100644
--- a/src/table.c
+++ b/src/table.c
@@ -64,10 +64,7 @@ void nftnl_table_unset(struct nftnl_table *t, uint16_t attr)
switch (attr) {
case NFTNL_TABLE_NAME:
- if (t->name) {
- xfree(t->name);
- t->name = NULL;
- }
+ xfree(t->name);
break;
case NFTNL_TABLE_FLAGS:
case NFTNL_TABLE_FAMILY: