In the Linux kernel, the following vulnerability has been resolved:
kcm: fix strp_init() order and cleanup
strpinit() is called just a few lines above this csk->skuserdata check, it also initializes strp->work etc., therefore, it is unnecessary to call strpdone() to cancel the freshly initialized work.
And if skuserdata is already used by KCM, psock->strp should not be touched, particularly strp->work state, so we need to move strpinit() after the csk->skuser_data check.
This also makes a lockdep warning reported by syzbot go away.