]> git.karo-electronics.de Git - karo-tx-linux.git/commit
[TCP]: Fix MD5 signature handling on big-endian.
authorDavid S. Miller <davem@sunset.davemloft.net>
Fri, 28 Sep 2007 22:18:35 +0000 (15:18 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Fri, 28 Sep 2007 22:18:35 +0000 (15:18 -0700)
commitf8ab18d2d987a59ccbf0495032b2aef05b730037
tree7a24c79632c91e22235888875813950c6c30d929
parente79ad711a0108475c1b3a03815527e7237020b08
[TCP]: Fix MD5 signature handling on big-endian.

Based upon a report and initial patch by Peter Lieven.

tcp4_md5sig_key and tcp6_md5sig_key need to start with
the exact same members as tcp_md5sig_key.  Because they
are both cast to that type by tcp_v{4,6}_md5_do_lookup().

Unfortunately tcp{4,6}_md5sig_key use a u16 for the key
length instead of a u8, which is what tcp_md5sig_key
uses.  This just so happens to work by accident on
little-endian, but on big-endian it doesn't.

Instead of casting, just place tcp_md5sig_key as the first member of
the address-family specific structures, adjust the access sites, and
kill off the ugly casts.

Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp_ipv4.c
net/ipv6/tcp_ipv6.c