diff --git a/net/sctp/socket.c b/net/sctp/socket.c index 46fb5840ce82880c2c2db854ce62bc75f38ba325..5ffa7515903b4d9f5623a37261958cbc5d7491be 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c @@ -8282,8 +8282,10 @@ static int sctp_listen_start(struct sock *sk, int backlog) */ inet_sk_set_state(sk, SCTP_SS_LISTENING); if (!ep->base.bind_addr.port) { - if (sctp_autobind(sk)) + if (sctp_autobind(sk)) { + inet_sk_set_state(sk, SCTP_SS_CLOSED); return -EAGAIN; + } } else { if (sctp_get_port(sk, inet_sk(sk)->inet_num)) { inet_sk_set_state(sk, SCTP_SS_CLOSED);