In mld_v2_cancel_link_timers() check number of references and disconnect

inm before releasing the last reference. This fixes possible panics and
assertion.

PR:		237329
Reviewed by:	mmacy
MFC after:	2 weeks
This commit is contained in:
Andrey V. Elsukov 2019-05-09 07:57:33 +00:00
parent 5acfd95cbc
commit 50ec8b3b3e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=347383

View File

@ -1708,6 +1708,8 @@ mld_v2_cancel_link_timers(struct mld_ifsoftc *mli)
* version, we need to release the final
* reference held for issuing the INCLUDE {}.
*/
if (inm->in6m_refcount == 1)
in6m_disconnect_locked(&inmh, inm);
in6m_rele_locked(&inmh, inm);
/* FALLTHROUGH */
case MLD_G_QUERY_PENDING_MEMBER: