aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>2008-10-09 17:37:47 -0400
committerDavid S. Miller <davem@davemloft.net>2008-10-09 17:37:47 -0400
commit78e645cb890b0f32ea81a974e29427d9cd2f64f0 (patch)
tree338dfe7e005dcc835b57f4cd43b6fe0da7b2f64e
parentdf58ef51caea073f4b45857c51f445f65267dac7 (diff)
tcpv[46]: fix md5 pseudoheader address field ordering
Maybe it's just me but I guess those md5 people made a mess out of it by having *_md5_hash_* to use daddr, saddr order instead of the one that is natural (and equal to what csum functions use). For the segment were sending, the original addresses are reversed so buff's saddr == skb's daddr and vice-versa. Maybe I can finally proceed with unification of some code after fixing it first... :-) Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/ipv4/tcp_ipv4.c4
-rw-r--r--net/ipv6/tcp_ipv6.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index ba46769c6e97..5c8fa7f1e327 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -583,8 +583,8 @@ static void tcp_v4_send_reset(struct sock *sk, struct sk_buff *skb)
583 rep.th.doff = arg.iov[0].iov_len / 4; 583 rep.th.doff = arg.iov[0].iov_len / 4;
584 584
585 tcp_v4_md5_hash_hdr((__u8 *) &rep.opt[1], 585 tcp_v4_md5_hash_hdr((__u8 *) &rep.opt[1],
586 key, ip_hdr(skb)->daddr, 586 key, ip_hdr(skb)->saddr,
587 ip_hdr(skb)->saddr, &rep.th); 587 ip_hdr(skb)->daddr, &rep.th);
588 } 588 }
589#endif 589#endif
590 arg.csum = csum_tcpudp_nofold(ip_hdr(skb)->daddr, 590 arg.csum = csum_tcpudp_nofold(ip_hdr(skb)->daddr,
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index dd7bdde7bddc..eab10bc7ff87 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -1007,8 +1007,8 @@ static void tcp_v6_send_reset(struct sock *sk, struct sk_buff *skb)
1007 (TCPOPT_MD5SIG << 8) | 1007 (TCPOPT_MD5SIG << 8) |
1008 TCPOLEN_MD5SIG); 1008 TCPOLEN_MD5SIG);
1009 tcp_v6_md5_hash_hdr((__u8 *)&opt[1], key, 1009 tcp_v6_md5_hash_hdr((__u8 *)&opt[1], key,
1010 &ipv6_hdr(skb)->daddr, 1010 &ipv6_hdr(skb)->saddr,
1011 &ipv6_hdr(skb)->saddr, t1); 1011 &ipv6_hdr(skb)->daddr, t1);
1012 } 1012 }
1013#endif 1013#endif
1014 1014