diff --git a/net/sctp/socket.c b/net/sctp/socket.c index 5053d813e91c..c1b713a26060 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c @@ -8299,8 +8299,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);