In the Linux kernel, the following vulnerability has been resolved:
misc: pciendpointtest: Avoid issue of interrupts remaining after request_irq error
After devmrequestirq() fails with error in pciendpointtestrequestirq(), the pciendpointtestfreeirq_vectors() is called assuming that all IRQs have been released.
However, some requested IRQs remain unreleased, so there are still /proc/irq/* entries remaining, and this results in WARN() with the following message:
removeprocentry: removing non-empty directory 'irq/30', leaking at least 'pci-endpoint-test.0' WARNING: CPU: 0 PID: 202 at fs/proc/generic.c:719 removeprocentry +0x190/0x19c
To solve this issue, set the number of remaining IRQs to test->numirqs, and release IRQs in advance by calling pciendpointtestrelease_irq().
[kwilczynski: commit log]