In the Linux kernel, the following vulnerability has been resolved: staging: rtl8712: fix a potential memory leak in r871xudrvinit() In r871xudrvinit(), if r8712initdrvsw() fails, then the memory allocated by r8712allocioqueue() in r8712usbdvobjinit() is not properly released as there is no action will be performed by r8712usbdvobjdeinit(). To properly release it, we should call r8712freeioqueue() in r8712usbdvobjdeinit(). Besides, in r871xudevremove(), r8712usbdvobjdeinit() will be called by r871xdevunload() under condition padapter->bup
and r8712freeioqueue() is called by r8712freedrvsw(). However, r8712usbdvobjdeinit() does not rely on padapter->bup
and calling r8712freeioqueue() in r8712freedrvsw() is negative for better understading the code. So I move r8712usbdvobjdeinit() into r871xudevremove(), and remove r8712freeioqueue() from r8712freedrv_sw().