Re: [PATCH] netfilter: nft_compat: fix sparse warning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 12, 2015 at 11:14:09AM +0100, Arturo Borrero Gonzalez wrote:
> >> net/netfilter/nft_compat.c:140:37: sparse: incorrect type in assignment (different base types)
>    net/netfilter/nft_compat.c:140:37:    expected restricted __be16 [usertype] ethproto
>    net/netfilter/nft_compat.c:140:37:    got unsigned char [unsigned] [usertype] proto
> >> net/netfilter/nft_compat.c:351:37: sparse: incorrect type in assignment (different base types)
>    net/netfilter/nft_compat.c:351:37:    expected restricted __be16 [usertype] ethproto
>    net/netfilter/nft_compat.c:351:37:    got unsigned char [unsigned] [usertype] proto

This is spotting a more serious problem. The existing code is trimming
the ethernet protocol field to u8. We should use u16 all around the
code and then force the casting to calm down sparse.

> Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
> Signed-off-by: Arturo Borrero Gonzalez <arturo.borrero.glez@xxxxxxxxx>
> ---
>  net/netfilter/nft_compat.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/net/netfilter/nft_compat.c b/net/netfilter/nft_compat.c
> index c598f74..b5dc651 100644
> --- a/net/netfilter/nft_compat.c
> +++ b/net/netfilter/nft_compat.c
> @@ -137,7 +137,7 @@ nft_target_set_tgchk_param(struct xt_tgchk_param *par,
>  		entry->e6.ipv6.invflags = inv ? IP6T_INV_PROTO : 0;
>  		break;
>  	case NFPROTO_BRIDGE:
> -		entry->ebt.ethproto = proto;
> +		entry->ebt.ethproto = (__force __be16)proto;
>  		entry->ebt.invflags = inv ? EBT_IPROTO : 0;
>  		break;
>  	}
> @@ -348,7 +348,7 @@ nft_match_set_mtchk_param(struct xt_mtchk_param *par, const struct nft_ctx *ctx,
>  		entry->e6.ipv6.invflags = inv ? IP6T_INV_PROTO : 0;
>  		break;
>  	case NFPROTO_BRIDGE:
> -		entry->ebt.ethproto = proto;
> +		entry->ebt.ethproto = (__force __be16)proto;
>  		entry->ebt.invflags = inv ? EBT_IPROTO : 0;
>  		break;
>  	}
> 
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux