• David S. Miller's avatar
    [TCP]: Fix MD5 signature handling on big-endian. · f8ab18d2
    David S. Miller authored
    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: default avatarDavid S. Miller <davem@davemloft.net>
    f8ab18d2
tcp.h 38.3 KB