diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-06-07 14:24:47 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-06-07 14:39:15 +0200 |
commit | e58b3f41aad8337749358c8f5393883ceab25dd9 (patch) | |
tree | f09306892abffbf1e410601519b9e610819401cf /src | |
parent | dde20393f929f22636dcedd82e5a2fe81394139e (diff) |
src: fix nft_*_unset function attribute that don't release data
In (dde2039 src: add nft_*_unset functions), I mangled Arturo's
patch to add a default case, but he was intentionally not adding
it to unset attributes that require no memory releases.
I prefered to add the attributes explicitly in the switch rather
on failing back on the default action.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/chain.c | 9 | ||||
-rw-r--r-- | src/rule.c | 6 | ||||
-rw-r--r-- | src/set.c | 4 | ||||
-rw-r--r-- | src/set_elem.c | 4 | ||||
-rw-r--r-- | src/table.c | 3 |
5 files changed, 26 insertions, 0 deletions
diff --git a/src/chain.c b/src/chain.c index 530e045..7775dfc 100644 --- a/src/chain.c +++ b/src/chain.c @@ -79,6 +79,15 @@ void nft_chain_attr_unset(struct nft_chain *c, uint16_t attr) c->type = NULL; } break; + case NFT_CHAIN_ATTR_NAME: + case NFT_CHAIN_ATTR_HOOKNUM: + case NFT_CHAIN_ATTR_PRIO: + case NFT_CHAIN_ATTR_POLICY: + case NFT_CHAIN_ATTR_BYTES: + case NFT_CHAIN_ATTR_PACKETS: + case NFT_CHAIN_ATTR_HANDLE: + case NFT_CHAIN_ATTR_FAMILY: + break; default: return; } @@ -88,6 +88,12 @@ void nft_rule_attr_unset(struct nft_rule *r, uint16_t attr) r->chain = NULL; } break; + case NFT_RULE_ATTR_HANDLE: + case NFT_RULE_ATTR_FLAGS: + case NFT_RULE_ATTR_COMPAT_PROTO: + case NFT_RULE_ATTR_COMPAT_FLAGS: + case NFT_RULE_ATTR_FAMILY: + break; default: return; } @@ -73,6 +73,10 @@ void nft_set_attr_unset(struct nft_set *s, uint16_t attr) s->name = NULL; } break; + case NFT_SET_ATTR_FLAGS: + case NFT_SET_ATTR_KEY_TYPE: + case NFT_SET_ATTR_KEY_LEN: + break; default: return; } diff --git a/src/set_elem.c b/src/set_elem.c index 13047ae..fb03d71 100644 --- a/src/set_elem.c +++ b/src/set_elem.c @@ -55,6 +55,10 @@ void nft_set_elem_attr_unset(struct nft_set_elem *s, uint16_t attr) } } break; + case NFT_SET_ELEM_ATTR_FLAGS: + case NFT_SET_ELEM_ATTR_KEY: /* NFTA_SET_ELEM_KEY */ + case NFT_SET_ELEM_ATTR_VERDICT: /* NFTA_SET_ELEM_DATA */ + break; default: return; } diff --git a/src/table.c b/src/table.c index 937f9b5..f21a6ed 100644 --- a/src/table.c +++ b/src/table.c @@ -60,6 +60,9 @@ void nft_table_attr_unset(struct nft_table *t, uint16_t attr) } } break; + case NFT_TABLE_ATTR_FLAGS: + case NFT_TABLE_ATTR_FAMILY: + break; default: return; } |