On 10/13/2025 2:58 AM, Pavel Zhigulin wrote: > In ch_ipsec_xfrm_add_state() there is not check of try_module_get > return value. It is very unlikely, but try_module_get() could return > false value, which could cause use-after-free error. > Conditions: The module count must be zero, and a module unload in > progress. The thread doing the unload is blocked somewhere. > Another thread makes a callback into the module for some request > that (for instance) would need to create a kernel thread. > It tries to get a reference for the thread. > So try_module_get(THIS_MODULE) is the right call - and will fail here. > > This fix adds checking the result of try_module_get call > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > Fixes: 6dad4e8ab3ec ("chcr: Add support for Inline IPSec") > Signed-off-by: Pavel Zhigulin > --- Reviewed-by: Jacob Keller