In the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_hid: don't call cdev_init while cdev in use When calling unbind, then bind again, cdev_init reinitialized the cdev, even though there may still be references to it. That's the case when the /dev/hidg* device is still opened. This obviously unsafe behavior like oopes. This fixes this by using cdev_alloc to put the cdev on the heap. That way, we can simply allocate a new one in hidg_bind.
https://git.kernel.org/stable/c/eb6ef6185f2054a341ec70d7e2165f5381744215
https://git.kernel.org/stable/c/c6c0d13db5d0f8d465eabc14bd23d2b6a7247a43
https://git.kernel.org/stable/c/75ecc46828ec377dd5692c677168ef6d64fd7123
https://git.kernel.org/stable/c/5a229016ca3ac551294ec59770be9da94ec4bf63