HomeFreeBSD

Change unp_mtx to supporting recursion, and do not drop the unp_mtx over
rS166708Unpublished

Unpublished Commit ยท Learn More

No further details are available.

Description

Change unp_mtx to supporting recursion, and do not drop the unp_mtx over
sonewconn() in unp_connect(). This avoids a race that occurs due to
v_socket being an uncounted reference, as the lock was being released in
order to call sonewconn(), which otherwise recurses into the UNIX domain
socket code via pru_attach, as well as holding the lock over a sleeping
memory allocation in uipc_attach(). Switch to a non-sleeping memory
allocation during UNIX domain socket attach.

This fix non-ideal in that it requires enabling recursion, but is a much
smaller change than moving to using true references for v_socket. The
reported panic occurs in unp_connect() following the return of
sonewconn().

Update copyright year.

Panic reported by: jhb

Details

Provenance
rwatsonAuthored on
Parents
rS166707: MFC rev. 1.15: fix race with execve().
Branches
Unknown
Tags
Unknown

Event Timeline