]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ipv6/tcp_ipv6.c
tcp: fix length used for checksum in a reset
[linux-2.6-omap-h63xx.git] / net / ipv6 / tcp_ipv6.c
index 424d9c4a67ac39b95ca16fb50ff3e2fc6eb80df1..e8b0fdd9edb82f01159a3393ddb05ca77aedd8ae 100644 (file)
@@ -1012,14 +1012,14 @@ static void tcp_v6_send_reset(struct sock *sk, struct sk_buff *skb)
        }
 #endif
 
-       buff->csum = csum_partial((char *)t1, sizeof(*t1), 0);
+       buff->csum = csum_partial((char *)t1, tot_len, 0);
 
        memset(&fl, 0, sizeof(fl));
        ipv6_addr_copy(&fl.fl6_dst, &ipv6_hdr(skb)->saddr);
        ipv6_addr_copy(&fl.fl6_src, &ipv6_hdr(skb)->daddr);
 
        t1->check = csum_ipv6_magic(&fl.fl6_src, &fl.fl6_dst,
-                                   sizeof(*t1), IPPROTO_TCP,
+                                   tot_len, IPPROTO_TCP,
                                    buff->csum);
 
        fl.proto = IPPROTO_TCP;