• Xin Long's avatar
    sctp: not bind the socket in sctp_connect · 9b6c0887
    Xin Long authored
    Now when sctp_connect() is called with a wrong sa_family, it binds
    to a port but doesn't set bp->port, then sctp_get_af_specific will
    return NULL and sctp_connect() returns -EINVAL.
    
    Then if sctp_bind() is called to bind to another port, the last
    port it has bound will leak due to bp->port is NULL by then.
    
    sctp_connect() doesn't need to bind ports, as later __sctp_connect
    will do it if bp->port is NULL. So remove it from sctp_connect().
    While at it, remove the unnecessary sockaddr.sa_family len check
    as it's already done in sctp_inet_connect.
    
    Fixes: 644fbdea ("sctp: fix the issue that flags are ignored when using kernel_connect")
    Reported-by: syzbot+079bf326b38072f849d9@syzkaller.appspotmail.com
    Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
    Acked-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9b6c0887
socket.c 257 KB