forked from luck/tmp_suning_uos_patched
[IPv6]: Only modify checksum for UDP
Only change upper-layer checksum from 0 to 0xFFFF for UDP (as RFC 768 states), not for others as RFC 4443 doesn't require it. Signed-off-by: Brian Haley <brian.haley@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f465e489c4
commit
d3a1be9cba
@ -247,8 +247,6 @@ static int icmpv6_push_pending_frames(struct sock *sk, struct flowi *fl, struct
|
|||||||
len, fl->proto, tmp_csum);
|
len, fl->proto, tmp_csum);
|
||||||
icmp6h->icmp6_cksum = tmp_csum;
|
icmp6h->icmp6_cksum = tmp_csum;
|
||||||
}
|
}
|
||||||
if (icmp6h->icmp6_cksum == 0)
|
|
||||||
icmp6h->icmp6_cksum = -1;
|
|
||||||
ip6_push_pending_frames(sk);
|
ip6_push_pending_frames(sk);
|
||||||
out:
|
out:
|
||||||
return err;
|
return err;
|
||||||
|
@ -536,7 +536,7 @@ static int rawv6_push_pending_frames(struct sock *sk, struct flowi *fl,
|
|||||||
&fl->fl6_dst,
|
&fl->fl6_dst,
|
||||||
total_len, fl->proto, tmp_csum);
|
total_len, fl->proto, tmp_csum);
|
||||||
|
|
||||||
if (tmp_csum == 0)
|
if (tmp_csum == 0 && fl->proto == IPPROTO_UDP)
|
||||||
tmp_csum = -1;
|
tmp_csum = -1;
|
||||||
|
|
||||||
csum = tmp_csum;
|
csum = tmp_csum;
|
||||||
|
Loading…
Reference in New Issue
Block a user