]> git.ipfire.org Git - thirdparty/libnftnl.git/commitdiff
src: remove default case from nft_*_attr_unset
authorPablo Neira Ayuso <pablo@netfilter.org>
Sun, 21 Jul 2013 13:26:02 +0000 (15:26 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Sun, 21 Jul 2013 13:33:56 +0000 (15:33 +0200)
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>
src/chain.c
src/rule.c
src/table.c

index 3fb1d034cb6a00c205cad05bb243066f42829b8a..4f9741a90452c58920049fd34177d68d860eff02 100644 (file)
@@ -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:
index b1bf64b1df7af2eb724f0cb793589254fb1ab5f8..e48497f30ce4412dafcb8a82a602e965b0e69344 100644 (file)
@@ -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);
index b2ebaa34484d017ce3da680d4b626b9f8f905a9c..e9e6d59bdef0777b2dc83f1035dae78260abd028 100644 (file)
@@ -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);
 }