Re: [PATCH v3 net-next 1/8] sctp: Defer SCTP_DBG_OBJCNT_DEC() to sctp_destroy_sock().
Xin Long <[email protected]>
| Newsgroups | org.kernel.vger.linux-sctp,org.kernel.vger.netdev |
|---|---|
| Message-ID | <CADvbK_d92g+ZxyyB1QECp=ONxzsgJn-FD1HXz1NAzRGYMG-Kxw@mail.gmail.com> |
On Thu, Oct 23, 2025 at 7:17 PM Kuniyuki Iwashima <[email protected]> wrote: > > SCTP_DBG_OBJCNT_INC() is called only when sctp_init_sock() > returns 0 after successfully allocating sctp_sk(sk)->ep. > > OTOH, SCTP_DBG_OBJCNT_DEC() is called in sctp_close(). > > The code seems to expect that the socket is always exposed > to userspace once SCTP_DBG_OBJCNT_INC() is incremented, but > there is a path where the assumption is not true. > > In sctp_accept(), sctp_sock_migrate() could fail after > sctp_init_sock(). > > Then, sk_common_release() does not call inet_release() nor > sctp_close(). Instead, it calls sk->sk_prot->destroy(). > > Let's move SCTP_DBG_OBJCNT_DEC() from sctp_close() to > sctp_destroy_sock(). > > Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") > Signed-off-by: Kuniyuki Iwashima <[email protected]> Acked-by: Xin Long <[email protected]>