HomeFreeBSD

If a user closes the socket before we call tcp_usr_abort(), then

Description

If a user closes the socket before we call tcp_usr_abort(), then
tcp_drop() may unlock the INP. Currently, tcp_usr_abort() does not
check for this case, which results in a panic while trying to unlock
the already-unlocked INP (not to mention, a use-after-free violation).

Make tcp_usr_abort() check the return value of tcp_drop(). In the case
where tcp_drop() returns NULL, tcp_usr_abort() can skip further steps
to abort the connection and simply unlock the INP_INFO lock prior to
returning.

Reviewed by: glebius
MFC after: 2 weeks
Sponsored by: Netflix, Inc.

Details

Provenance
jtlAuthored on
Reviewer
glebius
Parents
rS332119: Remove caching from getlogin(2).
Branches
Unknown
Tags
Unknown