Skip to content
  • Jason Baron's avatar
    f19008e6
    tcp: correct read of TFO keys on big endian systems · f19008e6
    Jason Baron authored
    
    
    When TFO keys are read back on big endian systems either via the global
    sysctl interface or via getsockopt() using TCP_FASTOPEN_KEY, the values
    don't match what was written.
    
    For example, on s390x:
    
    # echo "1-2-3-4" > /proc/sys/net/ipv4/tcp_fastopen_key
    # cat /proc/sys/net/ipv4/tcp_fastopen_key
    02000000-01000000-04000000-03000000
    
    Instead of:
    
    # cat /proc/sys/net/ipv4/tcp_fastopen_key
    00000001-00000002-00000003-00000004
    
    Fix this by converting to the correct endianness on read. This was
    reported by Colin Ian King when running the 'tcp_fastopen_backup_key' net
    selftest on s390x, which depends on the read value matching what was
    written. I've confirmed that the test now passes on big and little endian
    systems.
    
    Signed-off-by: default avatarJason Baron <jbaron@akamai.com>
    Fixes: 438ac880 ("net: fastopen: robustness and endianness fixes for SipHash")
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Eric Dumazet <edumazet@google.com>
    Reported-and-tested-by: default avatarColin Ian King <colin.king@canonical.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f19008e6
    tcp: correct read of TFO keys on big endian systems
    Jason Baron authored
    
    
    When TFO keys are read back on big endian systems either via the global
    sysctl interface or via getsockopt() using TCP_FASTOPEN_KEY, the values
    don't match what was written.
    
    For example, on s390x:
    
    # echo "1-2-3-4" > /proc/sys/net/ipv4/tcp_fastopen_key
    # cat /proc/sys/net/ipv4/tcp_fastopen_key
    02000000-01000000-04000000-03000000
    
    Instead of:
    
    # cat /proc/sys/net/ipv4/tcp_fastopen_key
    00000001-00000002-00000003-00000004
    
    Fix this by converting to the correct endianness on read. This was
    reported by Colin Ian King when running the 'tcp_fastopen_backup_key' net
    selftest on s390x, which depends on the read value matching what was
    written. I've confirmed that the test now passes on big and little endian
    systems.
    
    Signed-off-by: default avatarJason Baron <jbaron@akamai.com>
    Fixes: 438ac880 ("net: fastopen: robustness and endianness fixes for SipHash")
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Eric Dumazet <edumazet@google.com>
    Reported-and-tested-by: default avatarColin Ian King <colin.king@canonical.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Loading