diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-07-21 15:26:02 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-07-21 15:33:56 +0200 |
commit | cc9573dfa25585a415f6c12950758ce32f337294 (patch) | |
tree | 95471849b13a864f01be62e5961f087ab199022e /src | |
parent | d4faa02971e3924512f93e1d369bb134aa6d96b1 (diff) |
src: remove default case from nft_*_attr_unset
This patch removes the default case in nft_*_attr_unset, thus, the
compiler will spot a warning if we add a new attribute in the future
and you forget to handle it.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/chain.c | 21 | ||||
-rw-r--r-- | src/rule.c | 23 | ||||
-rw-r--r-- | src/table.c | 13 |
3 files changed, 28 insertions, 29 deletions
diff --git a/src/chain.c b/src/chain.c index 3fb1d03..4f9741a 100644 --- a/src/chain.c +++ b/src/chain.c @@ -77,23 +77,24 @@ EXPORT_SYMBOL(nft_chain_attr_is_set); void nft_chain_attr_unset(struct nft_chain *c, uint16_t attr) { + if (!(c->flags & (1 << attr))) + return; + switch (attr) { case NFT_CHAIN_ATTR_TABLE: - if (c->flags & (1 << NFT_CHAIN_ATTR_TABLE)) - if (c->table) { - free(c->table); - c->table = NULL; - } + if (c->table) { + free(c->table); + c->table = NULL; + } break; case NFT_CHAIN_ATTR_USE: /* cannot be unset?, ignore it */ return; case NFT_CHAIN_ATTR_TYPE: - if (c->flags & (1 << NFT_CHAIN_ATTR_TYPE)) - if (c->type) { - free(c->type); - c->type = NULL; - } + if (c->type) { + free(c->type); + c->type = NULL; + } break; case NFT_CHAIN_ATTR_NAME: case NFT_CHAIN_ATTR_HOOKNUM: @@ -81,20 +81,21 @@ EXPORT_SYMBOL(nft_rule_attr_is_set); void nft_rule_attr_unset(struct nft_rule *r, uint16_t attr) { + if (!(r->flags & (1 << attr))) + return; + switch (attr) { case NFT_RULE_ATTR_TABLE: - if (r->flags & (1 << NFT_RULE_ATTR_TABLE)) - if (r->table) { - free(r->table); - r->table = NULL; - } + if (r->table) { + free(r->table); + r->table = NULL; + } break; case NFT_RULE_ATTR_CHAIN: - if (r->flags & (1 << NFT_RULE_ATTR_CHAIN)) - if (r->chain) { - free(r->chain); - r->chain = NULL; - } + if (r->chain) { + free(r->chain); + r->chain = NULL; + } break; case NFT_RULE_ATTR_HANDLE: case NFT_RULE_ATTR_FLAGS: @@ -103,8 +104,6 @@ void nft_rule_attr_unset(struct nft_rule *r, uint16_t attr) case NFT_RULE_ATTR_POSITION: case NFT_RULE_ATTR_FAMILY: break; - default: - return; } r->flags &= ~(1 << attr); diff --git a/src/table.c b/src/table.c index b2ebaa3..e9e6d59 100644 --- a/src/table.c +++ b/src/table.c @@ -57,20 +57,19 @@ EXPORT_SYMBOL(nft_table_attr_is_set); void nft_table_attr_unset(struct nft_table *t, uint16_t attr) { + if (!(t->flags & (1 << attr))) + return; + switch (attr) { case NFT_TABLE_ATTR_NAME: - if (t->flags & (1 << NFT_TABLE_ATTR_NAME)) { - if (t->name) { - free(t->name); - t->name = NULL; - } + if (t->name) { + free(t->name); + t->name = NULL; } break; case NFT_TABLE_ATTR_FLAGS: case NFT_TABLE_ATTR_FAMILY: break; - default: - return; } t->flags &= ~(1 << attr); } |