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:	Wed, 07 Feb 2007 15:43:34 +0900 (JST)
From:	YOSHIFUJI Hideaki / 吉藤英明 
	<yoshfuji@...ux-ipv6.org>
To:	davem@...emloft.net
Cc:	takamiya@...ntts.co.jp, netdev@...r.kernel.org,
	yoshfuji@...ux-ipv6.org, nakam@...ux-ipv6.org
Subject: Re: [IPV6] RAW: Add checksum default defines for MH.

Dave,

AFAIK, we have not heard objectsions and I finally agree on this.
Please apply.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@...ux-ipv6.org>

--yoshfuji

In article <11678182681435-git-send-email-nakam@...ux-ipv6.org> (at Wed,  3 Jan 2007 18:57:48 +0900), Masahide NAKAMURA <nakam@...ux-ipv6.org> says:

> Add checksum default defines for mobility header(MH) which
> goes through raw socket. As the result kernel's behavior is
> to handle MH checksum as default.
> 
> This patch also removes verifying inbound MH checksum at
> mip6_mh_filter() since it did not consider user specified
> checksum offset and was redundant check with raw socket code.
> 
> Signed-off-by: Masahide NAKAMURA <nakam@...ux-ipv6.org>
> ---
>  net/ipv6/mip6.c |   26 --------------------------
>  net/ipv6/raw.c  |   13 +++++++++++--
>  2 files changed, 11 insertions(+), 28 deletions(-)
> 
> diff --git a/net/ipv6/mip6.c b/net/ipv6/mip6.c
> index be7dd7d..681bb07 100644
> --- a/net/ipv6/mip6.c
> +++ b/net/ipv6/mip6.c
> @@ -89,7 +89,6 @@ static int mip6_mh_len(int type)
>  int mip6_mh_filter(struct sock *sk, struct sk_buff *skb)
>  {
>  	struct ip6_mh *mh;
> -	int mhlen;
>  
>  	if (!pskb_may_pull(skb, (skb->h.raw - skb->data) + 8) ||
>  	    !pskb_may_pull(skb, (skb->h.raw - skb->data) + ((skb->h.raw[1] + 1) << 3)))
> @@ -103,31 +102,6 @@ int mip6_mh_filter(struct sock *sk, stru
>  		mip6_param_prob(skb, 0, (&mh->ip6mh_hdrlen) - skb->nh.raw);
>  		return -1;
>  	}
> -	mhlen = (mh->ip6mh_hdrlen + 1) << 3;
> -
> -	if (skb->ip_summed == CHECKSUM_COMPLETE) {
> -		skb->ip_summed = CHECKSUM_UNNECESSARY;
> -		if (csum_ipv6_magic(&skb->nh.ipv6h->saddr,
> -				    &skb->nh.ipv6h->daddr,
> -				    mhlen, IPPROTO_MH,
> -				    skb->csum)) {
> -			LIMIT_NETDEBUG(KERN_DEBUG "mip6: MH hw checksum failed\n");
> -			skb->ip_summed = CHECKSUM_NONE;
> -		}
> -	}
> -	if (skb->ip_summed == CHECKSUM_NONE) {
> -		if (csum_ipv6_magic(&skb->nh.ipv6h->saddr,
> -				    &skb->nh.ipv6h->daddr,
> -				    mhlen, IPPROTO_MH,
> -				    skb_checksum(skb, 0, mhlen, 0))) {
> -			LIMIT_NETDEBUG(KERN_DEBUG "mip6: MH checksum failed "
> -				       "[" NIP6_FMT " > " NIP6_FMT "]\n",
> -				       NIP6(skb->nh.ipv6h->saddr),
> -				       NIP6(skb->nh.ipv6h->daddr));
> -			return -1;
> -		}
> -		skb->ip_summed = CHECKSUM_UNNECESSARY;
> -	}
>  
>  	if (mh->ip6mh_proto != IPPROTO_NONE) {
>  		LIMIT_NETDEBUG(KERN_DEBUG "mip6: MH invalid payload proto = %d\n",
> diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
> index 4ae1b19..4b83e69 100644
> --- a/net/ipv6/raw.c
> +++ b/net/ipv6/raw.c
> @@ -1094,10 +1094,19 @@ static void rawv6_close(struct sock *sk,
>  
>  static int rawv6_init_sk(struct sock *sk)
>  {
> -	if (inet_sk(sk)->num == IPPROTO_ICMPV6) {
> -		struct raw6_sock *rp = raw6_sk(sk);
> +	struct raw6_sock *rp = raw6_sk(sk);
> +
> +	switch (inet_sk(sk)->num) {
> +	case IPPROTO_ICMPV6:
>  		rp->checksum = 1;
>  		rp->offset   = 2;
> +		break;
> +	case IPPROTO_MH:
> +		rp->checksum = 1;
> +		rp->offset   = 4;
> +		break;
> +	default:
> +		break;
>  	}
>  	return(0);
>  }
> -- 
> 1.4.2
> 
> -
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ