diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/tcp_ipv4.c | 4 | ||||
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 19 |
2 files changed, 8 insertions, 15 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 5fbf96552cac..2eb58844403c 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c | |||
@@ -111,7 +111,7 @@ void tcp_unhash(struct sock *sk) | |||
111 | inet_unhash(&tcp_hashinfo, sk); | 111 | inet_unhash(&tcp_hashinfo, sk); |
112 | } | 112 | } |
113 | 113 | ||
114 | static inline __u32 tcp_v4_init_sequence(struct sock *sk, struct sk_buff *skb) | 114 | static inline __u32 tcp_v4_init_sequence(struct sk_buff *skb) |
115 | { | 115 | { |
116 | return secure_tcp_sequence_number(skb->nh.iph->daddr, | 116 | return secure_tcp_sequence_number(skb->nh.iph->daddr, |
117 | skb->nh.iph->saddr, | 117 | skb->nh.iph->saddr, |
@@ -859,7 +859,7 @@ int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb) | |||
859 | goto drop_and_free; | 859 | goto drop_and_free; |
860 | } | 860 | } |
861 | 861 | ||
862 | isn = tcp_v4_init_sequence(sk, skb); | 862 | isn = tcp_v4_init_sequence(skb); |
863 | } | 863 | } |
864 | tcp_rsk(req)->snt_isn = isn; | 864 | tcp_rsk(req)->snt_isn = isn; |
865 | 865 | ||
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 06b536b47f97..9a8e690fdf7c 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
@@ -106,19 +106,12 @@ static __inline__ u16 tcp_v6_check(struct tcphdr *th, int len, | |||
106 | return csum_ipv6_magic(saddr, daddr, len, IPPROTO_TCP, base); | 106 | return csum_ipv6_magic(saddr, daddr, len, IPPROTO_TCP, base); |
107 | } | 107 | } |
108 | 108 | ||
109 | static __u32 tcp_v6_init_sequence(struct sock *sk, struct sk_buff *skb) | 109 | static __u32 tcp_v6_init_sequence(struct sk_buff *skb) |
110 | { | 110 | { |
111 | if (skb->protocol == htons(ETH_P_IPV6)) { | 111 | return secure_tcpv6_sequence_number(skb->nh.ipv6h->daddr.s6_addr32, |
112 | return secure_tcpv6_sequence_number(skb->nh.ipv6h->daddr.s6_addr32, | 112 | skb->nh.ipv6h->saddr.s6_addr32, |
113 | skb->nh.ipv6h->saddr.s6_addr32, | 113 | skb->h.th->dest, |
114 | skb->h.th->dest, | 114 | skb->h.th->source); |
115 | skb->h.th->source); | ||
116 | } else { | ||
117 | return secure_tcp_sequence_number(skb->nh.iph->daddr, | ||
118 | skb->nh.iph->saddr, | ||
119 | skb->h.th->dest, | ||
120 | skb->h.th->source); | ||
121 | } | ||
122 | } | 115 | } |
123 | 116 | ||
124 | static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr, | 117 | static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr, |
@@ -822,7 +815,7 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb) | |||
822 | treq->iif = inet6_iif(skb); | 815 | treq->iif = inet6_iif(skb); |
823 | 816 | ||
824 | if (isn == 0) | 817 | if (isn == 0) |
825 | isn = tcp_v6_init_sequence(sk,skb); | 818 | isn = tcp_v6_init_sequence(skb); |
826 | 819 | ||
827 | tcp_rsk(req)->snt_isn = isn; | 820 | tcp_rsk(req)->snt_isn = isn; |
828 | 821 | ||