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:
case NFTNL_CHAIN_FAMILY:
break;
case NFTNL_CHAIN_DEV:
- if (c->dev) {
- xfree(c->dev);
- c->dev = NULL;
- }
+ xfree(c->dev);
break;
default:
return;
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:
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);
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:
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 */
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;
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: