netfilter: Fix switch statement warnings with recent gcc.
authorDavid Miller <davem@davemloft.net>
Wed, 8 Apr 2015 03:05:42 +0000 (23:05 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 8 Apr 2015 19:20:50 +0000 (15:20 -0400)
More recent GCC warns about two kinds of switch statement uses:

1) Switching on an enumeration, but not having an explicit case
   statement for all members of the enumeration.  To show the
   compiler this is intentional, we simply add a default case
   with nothing more than a break statement.

2) Switching on a boolean value.  I think this warning is dumb
   but nevertheless you get it wholesale with -Wswitch.

This patch cures all such warnings in netfilter.

Signed-off-by: David S. Miller <davem@davemloft.net>
Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/bridge/netfilter/nft_reject_bridge.c
net/ipv4/netfilter/nft_reject_ipv4.c
net/ipv6/netfilter/nft_reject_ipv6.c
net/netfilter/nft_compat.c
net/netfilter/nft_ct.c

index 54a2fdf0f4574a4db6ba23193a511ffcf09293da..ae8141f409d9dc24d60d603133cc463e2564f895 100644 (file)
@@ -371,6 +371,8 @@ static int nft_reject_bridge_dump(struct sk_buff *skb,
                if (nla_put_u8(skb, NFTA_REJECT_ICMP_CODE, priv->icmp_code))
                        goto nla_put_failure;
                break;
+       default:
+               break;
        }
 
        return 0;
index 16a5d4d73d7565807490074d9f4df6f0ab90b297..a7621faa96783f31cf178a36a8ac147bedac5f32 100644 (file)
@@ -33,6 +33,8 @@ static void nft_reject_ipv4_eval(const struct nft_expr *expr,
        case NFT_REJECT_TCP_RST:
                nf_send_reset(pkt->skb, pkt->ops->hooknum);
                break;
+       default:
+               break;
        }
 
        data[NFT_REG_VERDICT].verdict = NF_DROP;
index f732859241444118d6cc357843482f70b432c786..71c7be5ee43a0e067e2d653cb37cee3a92e487bc 100644 (file)
@@ -34,6 +34,8 @@ static void nft_reject_ipv6_eval(const struct nft_expr *expr,
        case NFT_REJECT_TCP_RST:
                nf_send_reset6(net, pkt->skb, pkt->ops->hooknum);
                break;
+       default:
+               break;
        }
 
        data[NFT_REG_VERDICT].verdict = NF_DROP;
index 589b8487cd0840de2bafd01304242265b16ea11f..0d137c1ac889ea2cd8f74aaf71238773855198c0 100644 (file)
@@ -321,11 +321,11 @@ static void nft_match_eval(const struct nft_expr *expr,
                return;
        }
 
-       switch(ret) {
-       case true:
+       switch (ret ? 1 : 0) {
+       case 1:
                data[NFT_REG_VERDICT].verdict = NFT_CONTINUE;
                break;
-       case false:
+       case 0:
                data[NFT_REG_VERDICT].verdict = NFT_BREAK;
                break;
        }
index cc5603016242ea8e1f5cdce1d633e3a2687276ae..18d520e0ca0a73cadeb8cb8efa2565e1169e9980 100644 (file)
@@ -56,6 +56,8 @@ static void nft_ct_get_eval(const struct nft_expr *expr,
                        state = NF_CT_STATE_BIT(ctinfo);
                dest->data[0] = state;
                return;
+       default:
+               break;
        }
 
        if (ct == NULL)
@@ -117,6 +119,8 @@ static void nft_ct_get_eval(const struct nft_expr *expr,
                return;
        }
 #endif
+       default:
+               break;
        }
 
        tuple = &ct->tuplehash[priv->dir].tuple;
@@ -141,6 +145,8 @@ static void nft_ct_get_eval(const struct nft_expr *expr,
        case NFT_CT_PROTO_DST:
                dest->data[0] = (__force __u16)tuple->dst.u.all;
                return;
+       default:
+               break;
        }
        return;
 err:
@@ -172,6 +178,8 @@ static void nft_ct_set_eval(const struct nft_expr *expr,
                }
                break;
 #endif
+       default:
+               break;
        }
 }