In the Linux kernel, the following vulnerability has been resolved: net/l2tp: fix warning in l2tpexitnet found by syzbot In l2tp's net exit handler, we check that an IDR is empty before destroying it: WARNONONCE(!idrisempty(&pn->l2tptunnelidr)); idrdestroy(&pn->l2tptunnelidr); By forcing memory allocation failures in idralloc32, syzbot is able to provoke a condition where idrisempty returns false despite there being no items in the IDR. This turns out to be because the radix tree of the IDR contains only internal radix-tree nodes and it is this that causes idrisempty to return false. The internal nodes are cleaned by idrdestroy. Use idrforeach to check that the IDR is empty instead of idrisempty to avoid the problem.