diff --git a/net/sctp/socket.c b/net/sctp/socket.c index 5af0230e818c6d34b3af612c3b11bfa730736978..67a824b9977e127c7503079287a13b94abf9f9c1 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c @@ -8273,8 +8273,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);