In the Linux kernel, the following vulnerability has been resolved:
gpu: host1x: Fix memory leak of device names
The device names allocated by devsetname() need be freed before module unloading, but they can not be freed because the kobject's refcount which was set in device_initialize() has not be decreased to 0.
As comment of deviceadd() says, if it fails, use only putdevice() drop the refcount, then the name will be freed in kobejct_cleanup().
devicedel() and putdevice() can be replaced with deviceunregister(), so call it to unregister the added successfully devices, and just call putdevice() to the not added device.
Add a release() function to device to avoid null release() function WARNING in devicerelease(), it's empty, because the context devices are freed together in host1xmemorycontextlist_free().
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/53xxx/CVE-2023-53514.json"
}