lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 12 Feb 2019 14:36:20 -0700
From:   Jens Axboe <axboe@...nel.dk>
To:     "Gustavo A. R. Silva" <gustavo@...eddedor.com>,
        Philipp Reisner <philipp.reisner@...bit.com>,
        Lars Ellenberg <lars.ellenberg@...bit.com>
Cc:     drbd-dev@...ts.linbit.com, linux-block@...r.kernel.org,
        linux-kernel@...r.kernel.org, Kees Cook <keescook@...omium.org>
Subject: Re: [PATCH] drbd_receiver: mark expected switch fall-throughs

On 2/12/19 2:28 PM, Gustavo A. R. Silva wrote:
> In preparation to enabling -Wimplicit-fallthrough, mark switch
> cases where we are expecting to fall through.
> 
> This patch fixes the following warnings:
> 
> drivers/block/drbd/drbd_receiver.c: In function ‘drbd_asb_recover_0p’:
> drivers/block/drbd/drbd_receiver.c:3093:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
>    if (self == 1 && peer == 0) {
>       ^
> drivers/block/drbd/drbd_receiver.c:3098:2: note: here
>   case ASB_DISCARD_OLDER_PRI:
>   ^~~~
> drivers/block/drbd/drbd_receiver.c:3120:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
>    if (after_sb_0p == ASB_DISCARD_ZERO_CHG)
>       ^
> drivers/block/drbd/drbd_receiver.c:3123:2: note: here
>   case ASB_DISCARD_LEAST_CHG:
>   ^~~~
> 
> Warning level 3 was used: -Wimplicit-fallthrough=3
> 
> Notice that in some cases, the code comment is modified in
> accordance with what GCC is expecting to find.
> 
> This patch is part of the ongoing efforts to enable
> -Wimplicit-fallthrough.
> 
> Signed-off-by: Gustavo A. R. Silva <gustavo@...eddedor.com>
> ---
>  drivers/block/drbd/drbd_receiver.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
> index c7ad88d91a09..78bb763a367d 100644
> --- a/drivers/block/drbd/drbd_receiver.c
> +++ b/drivers/block/drbd/drbd_receiver.c
> @@ -3094,7 +3094,7 @@ static int drbd_asb_recover_0p(struct drbd_peer_device *peer_device) __must_hold
>  			rv =  1;
>  			break;
>  		}
> -		/* Else fall through to one of the other strategies... */
> +		/* Else fall through - to one of the other strategies... */
>  	case ASB_DISCARD_OLDER_PRI:
>  		if (self == 0 && peer == 1) {
>  			rv = 1;
> @@ -3119,7 +3119,7 @@ static int drbd_asb_recover_0p(struct drbd_peer_device *peer_device) __must_hold
>  		}
>  		if (after_sb_0p == ASB_DISCARD_ZERO_CHG)
>  			break;
> -		/* else: fall through */
> +		/* Else fall through */

This is getting really silly, as these two hunks both aptly demonstrate. Can
we please inject some sanity into this fall through witch hunt?

The last hunk is updating ANOTHER patch that also attempted to silence this
stuff.

-- 
Jens Axboe

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ