title: serial: 8250: omap: Don't skip resource freeing if pm_runtime_resume_and_get() failed
description: In the Linux kernel, the following vulnerability has been resolved:
serial: 8250: omap: Don't skip resource freeing if pm_runtime_resume_and_get() failed
Returning an error code from .remove() makes the driver core emit the
little helpful error message:
remove callback returned a non-zero value. This will be ignored.
and then remove the device anyhow. So all resources that were not freed
are leaked in this case. Skipping serial8250_unregister_port() has the
potential to keep enough of the UART around to trigger a use-after-free.
So replace the error return (and with it the little helpful error
message) by a more useful error message and continue to cleanup.
affected:
{
product: Linux
vendor: Linux
defaultStatus: unaffected
repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
versions:
version: 2d66412563ef, lessThan: b502fb43f7fb, status: affected, versionType: git
version: d833cba201ad, lessThan: bc57f3ef8a9e, status: affected, versionType: git
version: e0db709a58bd, lessThan: 828cd829483f, status: affected, versionType: git
version: e3f0c638f428, lessThan: d74173bda29a, status: affected, versionType: git
version: e3f0c638f428, lessThan: 887a558d0298, status: affected, versionType: git
version: e3f0c638f428, lessThan: 95e4e0031eff, status: affected, versionType: git
version: e3f0c638f428, lessThan: ad90d0358bd3, status: affected, versionType: git
}
{
product: Linux
vendor: Linux
defaultStatus: affected
repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
versions:
version: 6.1, status: affected
version: 0, lessThan: 6.1, status: unaffected, versionType: custom
version: 5.4.268, lessThanOrEqual: 5.4.*, status: unaffected, versionType: custom
version: 5.10.209, lessThanOrEqual: 5.10.*, status: unaffected, versionType: custom
version: 5.15.148, lessThanOrEqual: 5.15.*, status: unaffected, versionType: custom
version: 6.1.75, lessThanOrEqual: 6.1.*, status: unaffected, versionType: custom
version: 6.6.14, lessThanOrEqual: 6.6.*, status: unaffected, versionType: custom
version: 6.7.2, lessThanOrEqual: 6.7.*, status: unaffected, versionType: custom
version: 6.8, lessThanOrEqual: *, status: unaffected, versionType: original_commit_for_fix
}
