• Laszlo Toth's avatar
    sctp: full support for ipv6 ip_nonlocal_bind & IP_FREEBIND · b71d21c2
    Laszlo Toth authored
    Commit 9b974202 ("sctp: support ipv6 nonlocal bind")
    introduced support for the above options as v4 sctp did,
    so patched sctp_v6_available().
    
    In the v4 implementation it's enough, because
    sctp_inet_bind_verify() just returns with sctp_v4_available().
    However sctp_inet6_bind_verify() has an extra check before that
    for link-local scope_id, which won't respect the above options.
    
    Added the checks before calling ipv6_chk_addr(), but
    not before the validation of scope_id.
    
    before (w/ both options):
     ./v6test fe80::10 sctp
     bind failed, errno: 99 (Cannot assign requested address)
     ./v6test fe80::10 tcp
     bind success, errno: 0 (Success)
    
    after (w/ both options):
     ./v6test fe80::10 sctp
     bind success, errno: 0 (Success)
    Signed-off-by: default avatarLaszlo Toth <laszlth@gmail.com>
    Reviewed-by: default avatarXin Long <lucien.xin@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b71d21c2
ipv6.c 29.3 KB