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>] [day] [month] [year] [list]
Date:   Fri, 3 Feb 2017 10:54:03 +0100
From:   Greg KH <gregkh@...uxfoundation.org>
To:     Javier Rodriguez <jrodbar@...oo.es>
Cc:     janani.rvchndrn@...il.com, bhumirks@...il.com, imre.deak@...il.com,
        emil.gedda@...lgedda.se, devel@...verdev.osuosl.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH] staging: gdm724x: fix sparse warnings in file gdm_lte.c

On Tue, Jan 31, 2017 at 07:37:19PM +0100, Javier Rodriguez wrote:
> drivers/staging/gdm724x/gdm_lte.c:201:33: warning: incorrect type in assignment (different base types)
> drivers/staging/gdm724x/gdm_lte.c:201:33:    expected unsigned int [unsigned] [addressable] [usertype] ph_len
> drivers/staging/gdm724x/gdm_lte.c:201:33:    got restricted __be16 [usertype] payload_len
> drivers/staging/gdm724x/gdm_lte.c:311:39: warning: incorrect type in assignment (different base types)
> drivers/staging/gdm724x/gdm_lte.c:311:39:    expected restricted __sum16 [addressable] [assigned] [usertype] icmp6_cksum
> drivers/staging/gdm724x/gdm_lte.c:311:39:    got int
> 
> Signed-off-by: Javier Rodriguez <jrodbar@...oo.es>
> ---
>  drivers/staging/gdm724x/gdm_lte.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/staging/gdm724x/gdm_lte.c b/drivers/staging/gdm724x/gdm_lte.c
> index a182757..86b2b4f 100644
> --- a/drivers/staging/gdm724x/gdm_lte.c
> +++ b/drivers/staging/gdm724x/gdm_lte.c
> @@ -198,7 +198,7 @@ static int icmp6_checksum(struct ipv6hdr *ipv6, u16 *ptr, int len)
>  	memset(&pseudo_header, 0, sizeof(pseudo_header));
>  	memcpy(&pseudo_header.ph.ph_src, &ipv6->saddr.in6_u.u6_addr8, 16);
>  	memcpy(&pseudo_header.ph.ph_dst, &ipv6->daddr.in6_u.u6_addr8, 16);
> -	pseudo_header.ph.ph_len = ipv6->payload_len;
> +	pseudo_header.ph.ph_len = be16_to_cpu(ipv6->payload_len);
>  	pseudo_header.ph.ph_nxt = ipv6->nexthdr;
>  
>  	w = (u16 *)&pseudo_header;
> @@ -308,7 +308,7 @@ static int gdm_lte_emulate_ndp(struct sk_buff *skb_in, u32 nic_type)
>  		memcpy(icmp_na + sizeof(struct icmp6hdr), &na,
>  		       sizeof(struct neighbour_advertisement));
>  
> -		icmp6_out.icmp6_cksum = icmp6_checksum(&ipv6_out,
> +		icmp6_out.icmp6_cksum = (__force __sum16) icmp6_checksum(&ipv6_out,

That feels really wrong, are you sure this is correct?

thanks,

greg k-h

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ