Skip to content

Commit

Permalink
netfilter: Fix switch statement warnings with recent gcc.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
David Miller committed Apr 8, 2015
1 parent e85e85c commit c1f8667
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 3 deletions.
2 changes: 2 additions & 0 deletions net/bridge/netfilter/nft_reject_bridge.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 2 additions & 0 deletions net/ipv4/netfilter/nft_reject_ipv4.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 2 additions & 0 deletions net/ipv6/netfilter/nft_reject_ipv6.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
6 changes: 3 additions & 3 deletions net/netfilter/nft_compat.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
8 changes: 8 additions & 0 deletions net/netfilter/nft_ct.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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;
Expand All @@ -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:
Expand Down Expand Up @@ -172,6 +178,8 @@ static void nft_ct_set_eval(const struct nft_expr *expr,
}
break;
#endif
default:
break;
}
}

Expand Down

0 comments on commit c1f8667

Please sign in to comment.