* [PATCH] netfilter: mark expected switch fall-throughs
@ 2017-10-19 14:06 Gustavo A. R. Silva
2017-11-07 1:07 ` Pablo Neira Ayuso
0 siblings, 1 reply; 6+ messages in thread
From: Gustavo A. R. Silva @ 2017-10-19 14:06 UTC (permalink / raw)
To: Pablo Neira Ayuso, Jozsef Kadlecsik, Florian Westphal,
David S. Miller, Wensong Zhang, Simon Horman, Julian Anastasov
Cc: netfilter-devel, coreteam, netdev, linux-kernel, lvs-devel,
Gustavo A. R. Silva
In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.
Notice that in some cases I placed the "fall through" comment on its own
line, which is what GCC is expecting to find.
Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
---
This code was tested by compilation only (GCC 7.2.0 was used).
Please, verify if the actual intention of the code is to fall through.
net/netfilter/ipset/ip_set_core.c | 3 ++-
net/netfilter/ipvs/ip_vs_proto_tcp.c | 1 +
net/netfilter/ipvs/ip_vs_proto_udp.c | 1 +
net/netfilter/nf_conntrack_h323_asn1.c | 3 +++
net/netfilter/nft_cmp.c | 2 ++
net/netfilter/x_tables.c | 3 ++-
6 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c
index cf84f7b..72f654a 100644
--- a/net/netfilter/ipset/ip_set_core.c
+++ b/net/netfilter/ipset/ip_set_core.c
@@ -1386,7 +1386,8 @@ ip_set_dump_start(struct sk_buff *skb, struct netlink_callback *cb)
goto next_set;
if (set->variant->uref)
set->variant->uref(set, cb, true);
- /* Fall through and add elements */
+ /* add elements */
+ /* fall through */
default:
rcu_read_lock_bh();
ret = set->variant->list(set, skb, cb);
diff --git a/net/netfilter/ipvs/ip_vs_proto_tcp.c b/net/netfilter/ipvs/ip_vs_proto_tcp.c
index 1c6e101..569631d 100644
--- a/net/netfilter/ipvs/ip_vs_proto_tcp.c
+++ b/net/netfilter/ipvs/ip_vs_proto_tcp.c
@@ -315,6 +315,7 @@ tcp_csum_check(int af, struct sk_buff *skb, struct ip_vs_protocol *pp)
switch (skb->ip_summed) {
case CHECKSUM_NONE:
skb->csum = skb_checksum(skb, tcphoff, skb->len - tcphoff, 0);
+ /* fall through */
case CHECKSUM_COMPLETE:
#ifdef CONFIG_IP_VS_IPV6
if (af == AF_INET6) {
diff --git a/net/netfilter/ipvs/ip_vs_proto_udp.c b/net/netfilter/ipvs/ip_vs_proto_udp.c
index 30e11cd..c15ef7c 100644
--- a/net/netfilter/ipvs/ip_vs_proto_udp.c
+++ b/net/netfilter/ipvs/ip_vs_proto_udp.c
@@ -319,6 +319,7 @@ udp_csum_check(int af, struct sk_buff *skb, struct ip_vs_protocol *pp)
case CHECKSUM_NONE:
skb->csum = skb_checksum(skb, udphoff,
skb->len - udphoff, 0);
+ /* fall through */
case CHECKSUM_COMPLETE:
#ifdef CONFIG_IP_VS_IPV6
if (af == AF_INET6) {
diff --git a/net/netfilter/nf_conntrack_h323_asn1.c b/net/netfilter/nf_conntrack_h323_asn1.c
index 89b2e46..7336e5c 100644
--- a/net/netfilter/nf_conntrack_h323_asn1.c
+++ b/net/netfilter/nf_conntrack_h323_asn1.c
@@ -250,12 +250,15 @@ static unsigned int get_uint(bitstr_t *bs, int b)
case 4:
v |= *bs->cur++;
v <<= 8;
+ /* fall through */
case 3:
v |= *bs->cur++;
v <<= 8;
+ /* fall through */
case 2:
v |= *bs->cur++;
v <<= 8;
+ /* fall through */
case 1:
v |= *bs->cur++;
break;
diff --git a/net/netfilter/nft_cmp.c b/net/netfilter/nft_cmp.c
index c2945eb..fa90a84 100644
--- a/net/netfilter/nft_cmp.c
+++ b/net/netfilter/nft_cmp.c
@@ -44,6 +44,7 @@ static void nft_cmp_eval(const struct nft_expr *expr,
case NFT_CMP_LT:
if (d == 0)
goto mismatch;
+ /* fall through */
case NFT_CMP_LTE:
if (d > 0)
goto mismatch;
@@ -51,6 +52,7 @@ static void nft_cmp_eval(const struct nft_expr *expr,
case NFT_CMP_GT:
if (d == 0)
goto mismatch;
+ /* fall through */
case NFT_CMP_GTE:
if (d < 0)
goto mismatch;
diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c
index d8571f4..fa5cdd0 100644
--- a/net/netfilter/x_tables.c
+++ b/net/netfilter/x_tables.c
@@ -1382,7 +1382,8 @@ static void *xt_mttg_seq_next(struct seq_file *seq, void *v, loff_t *ppos,
trav->curr = trav->curr->next;
if (trav->curr != trav->head)
break;
- /* fallthru, _stop will unlock */
+ /* _stop will unlock */
+ /* fall through */
default:
return NULL;
}
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] netfilter: mark expected switch fall-throughs
2017-10-19 14:06 [PATCH] netfilter: mark expected switch fall-throughs Gustavo A. R. Silva
@ 2017-11-07 1:07 ` Pablo Neira Ayuso
2017-11-07 13:30 ` Gustavo A. R. Silva
0 siblings, 1 reply; 6+ messages in thread
From: Pablo Neira Ayuso @ 2017-11-07 1:07 UTC (permalink / raw)
To: Gustavo A. R. Silva
Cc: Jozsef Kadlecsik, Florian Westphal, David S. Miller,
Wensong Zhang, Simon Horman, Julian Anastasov, netfilter-devel,
coreteam, netdev, linux-kernel, lvs-devel
Hi Gustavo,
On Thu, Oct 19, 2017 at 09:06:16AM -0500, Gustavo A. R. Silva wrote:
> diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c
> index cf84f7b..72f654a 100644
> --- a/net/netfilter/ipset/ip_set_core.c
> +++ b/net/netfilter/ipset/ip_set_core.c
> @@ -1386,7 +1386,8 @@ ip_set_dump_start(struct sk_buff *skb, struct netlink_callback *cb)
> goto next_set;
> if (set->variant->uref)
> set->variant->uref(set, cb, true);
> - /* Fall through and add elements */
> + /* add elements */
> + /* fall through */
Just replace this comment by /* fall through */, I think it's enough
to remember that this is intentional.
> default:
> rcu_read_lock_bh();
> ret = set->variant->list(set, skb, cb);
[...]
> diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c
> index d8571f4..fa5cdd0 100644
> --- a/net/netfilter/x_tables.c
> +++ b/net/netfilter/x_tables.c
> @@ -1382,7 +1382,8 @@ static void *xt_mttg_seq_next(struct seq_file *seq, void *v, loff_t *ppos,
> trav->curr = trav->curr->next;
> if (trav->curr != trav->head)
> break;
> - /* fallthru, _stop will unlock */
> + /* _stop will unlock */
Same thing here, thanks!
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] netfilter: mark expected switch fall-throughs
2017-11-07 1:07 ` Pablo Neira Ayuso
@ 2017-11-07 13:30 ` Gustavo A. R. Silva
2017-11-07 14:19 ` [PATCH v2] " Gustavo A. R. Silva
0 siblings, 1 reply; 6+ messages in thread
From: Gustavo A. R. Silva @ 2017-11-07 13:30 UTC (permalink / raw)
To: Pablo Neira Ayuso
Cc: Jozsef Kadlecsik, Florian Westphal, David S. Miller,
Wensong Zhang, Simon Horman, Julian Anastasov, netfilter-devel,
coreteam, netdev, linux-kernel, lvs-devel
Hello Pablo,
Quoting Pablo Neira Ayuso <pablo@netfilter.org>:
> Hi Gustavo,
>
> On Thu, Oct 19, 2017 at 09:06:16AM -0500, Gustavo A. R. Silva wrote:
>> diff --git a/net/netfilter/ipset/ip_set_core.c
>> b/net/netfilter/ipset/ip_set_core.c
>> index cf84f7b..72f654a 100644
>> --- a/net/netfilter/ipset/ip_set_core.c
>> +++ b/net/netfilter/ipset/ip_set_core.c
>> @@ -1386,7 +1386,8 @@ ip_set_dump_start(struct sk_buff *skb, struct
>> netlink_callback *cb)
>> goto next_set;
>> if (set->variant->uref)
>> set->variant->uref(set, cb, true);
>> - /* Fall through and add elements */
>> + /* add elements */
>> + /* fall through */
>
> Just replace this comment by /* fall through */, I think it's enough
> to remember that this is intentional.
OK. Will do.
>
>> default:
>> rcu_read_lock_bh();
>> ret = set->variant->list(set, skb, cb);
> [...]
>> diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c
>> index d8571f4..fa5cdd0 100644
>> --- a/net/netfilter/x_tables.c
>> +++ b/net/netfilter/x_tables.c
>> @@ -1382,7 +1382,8 @@ static void *xt_mttg_seq_next(struct seq_file
>> *seq, void *v, loff_t *ppos,
>> trav->curr = trav->curr->next;
>> if (trav->curr != trav->head)
>> break;
>> - /* fallthru, _stop will unlock */
>> + /* _stop will unlock */
>
> Same thing here, thanks!
OK. I will send v2 shortly.
Thanks for your comments
--
Gustavo A. R. Silva
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2] netfilter: mark expected switch fall-throughs
2017-11-07 13:30 ` Gustavo A. R. Silva
@ 2017-11-07 14:19 ` Gustavo A. R. Silva
2017-11-13 7:59 ` Simon Horman
0 siblings, 1 reply; 6+ messages in thread
From: Gustavo A. R. Silva @ 2017-11-07 14:19 UTC (permalink / raw)
To: Pablo Neira Ayuso, Jozsef Kadlecsik, Florian Westphal,
David S. Miller, Wensong Zhang, Simon Horman, Julian Anastasov
Cc: netfilter-devel, coreteam, netdev, linux-kernel, lvs-devel,
Gustavo A. R. Silva
In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.
Addresses-Coverity-ID: 1128839
Addresses-Coverity-ID: 1128840
Addresses-Coverity-ID: 115120
Addresses-Coverity-ID: 115121
Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
---
Changes in v2:
Replace code comments with "fall through" as suggested by Pablo Neira Ayuso.
Add Coverity IDs to the changelog.
net/netfilter/ipset/ip_set_core.c | 2 +-
net/netfilter/ipvs/ip_vs_proto_tcp.c | 1 +
net/netfilter/ipvs/ip_vs_proto_udp.c | 1 +
net/netfilter/nf_conntrack_h323_asn1.c | 3 +++
net/netfilter/nft_cmp.c | 2 ++
net/netfilter/x_tables.c | 2 +-
6 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c
index cf84f7b..d5a43ca 100644
--- a/net/netfilter/ipset/ip_set_core.c
+++ b/net/netfilter/ipset/ip_set_core.c
@@ -1386,7 +1386,7 @@ ip_set_dump_start(struct sk_buff *skb, struct netlink_callback *cb)
goto next_set;
if (set->variant->uref)
set->variant->uref(set, cb, true);
- /* Fall through and add elements */
+ /* fall through */
default:
rcu_read_lock_bh();
ret = set->variant->list(set, skb, cb);
diff --git a/net/netfilter/ipvs/ip_vs_proto_tcp.c b/net/netfilter/ipvs/ip_vs_proto_tcp.c
index 1c6e101..569631d 100644
--- a/net/netfilter/ipvs/ip_vs_proto_tcp.c
+++ b/net/netfilter/ipvs/ip_vs_proto_tcp.c
@@ -315,6 +315,7 @@ tcp_csum_check(int af, struct sk_buff *skb, struct ip_vs_protocol *pp)
switch (skb->ip_summed) {
case CHECKSUM_NONE:
skb->csum = skb_checksum(skb, tcphoff, skb->len - tcphoff, 0);
+ /* fall through */
case CHECKSUM_COMPLETE:
#ifdef CONFIG_IP_VS_IPV6
if (af == AF_INET6) {
diff --git a/net/netfilter/ipvs/ip_vs_proto_udp.c b/net/netfilter/ipvs/ip_vs_proto_udp.c
index 30e11cd..c15ef7c 100644
--- a/net/netfilter/ipvs/ip_vs_proto_udp.c
+++ b/net/netfilter/ipvs/ip_vs_proto_udp.c
@@ -319,6 +319,7 @@ udp_csum_check(int af, struct sk_buff *skb, struct ip_vs_protocol *pp)
case CHECKSUM_NONE:
skb->csum = skb_checksum(skb, udphoff,
skb->len - udphoff, 0);
+ /* fall through */
case CHECKSUM_COMPLETE:
#ifdef CONFIG_IP_VS_IPV6
if (af == AF_INET6) {
diff --git a/net/netfilter/nf_conntrack_h323_asn1.c b/net/netfilter/nf_conntrack_h323_asn1.c
index cf1bf26..c957fcf 100644
--- a/net/netfilter/nf_conntrack_h323_asn1.c
+++ b/net/netfilter/nf_conntrack_h323_asn1.c
@@ -250,12 +250,15 @@ static unsigned int get_uint(struct bitstr *bs, int b)
case 4:
v |= *bs->cur++;
v <<= 8;
+ /* fall through */
case 3:
v |= *bs->cur++;
v <<= 8;
+ /* fall through */
case 2:
v |= *bs->cur++;
v <<= 8;
+ /* fall through */
case 1:
v |= *bs->cur++;
break;
diff --git a/net/netfilter/nft_cmp.c b/net/netfilter/nft_cmp.c
index c2945eb..fa90a84 100644
--- a/net/netfilter/nft_cmp.c
+++ b/net/netfilter/nft_cmp.c
@@ -44,6 +44,7 @@ static void nft_cmp_eval(const struct nft_expr *expr,
case NFT_CMP_LT:
if (d == 0)
goto mismatch;
+ /* fall through */
case NFT_CMP_LTE:
if (d > 0)
goto mismatch;
@@ -51,6 +52,7 @@ static void nft_cmp_eval(const struct nft_expr *expr,
case NFT_CMP_GT:
if (d == 0)
goto mismatch;
+ /* fall through */
case NFT_CMP_GTE:
if (d < 0)
goto mismatch;
diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c
index a77dd51..7c1414e 100644
--- a/net/netfilter/x_tables.c
+++ b/net/netfilter/x_tables.c
@@ -1397,7 +1397,7 @@ static void *xt_mttg_seq_next(struct seq_file *seq, void *v, loff_t *ppos,
trav->curr = trav->curr->next;
if (trav->curr != trav->head)
break;
- /* fallthru, _stop will unlock */
+ /* fall through */
default:
return NULL;
}
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2] netfilter: mark expected switch fall-throughs
2017-11-07 14:19 ` [PATCH v2] " Gustavo A. R. Silva
@ 2017-11-13 7:59 ` Simon Horman
2017-11-13 12:46 ` Pablo Neira Ayuso
0 siblings, 1 reply; 6+ messages in thread
From: Simon Horman @ 2017-11-13 7:59 UTC (permalink / raw)
To: Gustavo A. R. Silva
Cc: Pablo Neira Ayuso, Jozsef Kadlecsik, Florian Westphal,
David S. Miller, Wensong Zhang, Julian Anastasov,
netfilter-devel, coreteam, netdev, linux-kernel, lvs-devel
On Tue, Nov 07, 2017 at 08:19:29AM -0600, Gustavo A. R. Silva wrote:
> In preparation to enabling -Wimplicit-fallthrough, mark switch cases
> where we are expecting to fall through.
>
> Addresses-Coverity-ID: 1128839
> Addresses-Coverity-ID: 1128840
> Addresses-Coverity-ID: 115120
> Addresses-Coverity-ID: 115121
> Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Pablo, could you take this one directly?
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] netfilter: mark expected switch fall-throughs
2017-11-13 7:59 ` Simon Horman
@ 2017-11-13 12:46 ` Pablo Neira Ayuso
0 siblings, 0 replies; 6+ messages in thread
From: Pablo Neira Ayuso @ 2017-11-13 12:46 UTC (permalink / raw)
To: Simon Horman
Cc: Gustavo A. R. Silva, Jozsef Kadlecsik, Florian Westphal,
David S. Miller, Wensong Zhang, Julian Anastasov,
netfilter-devel, coreteam, netdev, linux-kernel, lvs-devel
On Mon, Nov 13, 2017 at 08:59:50AM +0100, Simon Horman wrote:
> On Tue, Nov 07, 2017 at 08:19:29AM -0600, Gustavo A. R. Silva wrote:
> > In preparation to enabling -Wimplicit-fallthrough, mark switch cases
> > where we are expecting to fall through.
> >
> > Addresses-Coverity-ID: 1128839
> > Addresses-Coverity-ID: 1128840
> > Addresses-Coverity-ID: 115120
> > Addresses-Coverity-ID: 115121
> > Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
>
> Signed-off-by: Simon Horman <horms@verge.net.au>
>
> Pablo, could you take this one directly?
Applied, thanks!
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-11-13 12:46 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-19 14:06 [PATCH] netfilter: mark expected switch fall-throughs Gustavo A. R. Silva
2017-11-07 1:07 ` Pablo Neira Ayuso
2017-11-07 13:30 ` Gustavo A. R. Silva
2017-11-07 14:19 ` [PATCH v2] " Gustavo A. R. Silva
2017-11-13 7:59 ` Simon Horman
2017-11-13 12:46 ` Pablo Neira Ayuso
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).