]> xenbits.xensource.com Git - xen.git/commit
x86/IRQ: avoid double unlock in map_domain_pirq() 4.20-dev
authorJan Beulich <jbeulich@suse.com>
Tue, 16 Jul 2024 12:09:14 +0000 (14:09 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 16 Jul 2024 12:09:14 +0000 (14:09 +0200)
commit57338346f29cea7b183403561bdc5f407163b846
treedcb6f3ed5c05605bf00292c1cb724df76d0bd736
parent1ddc8c1bad93aa6cbfe616dd72333460c47f96c9
x86/IRQ: avoid double unlock in map_domain_pirq()

Forever since its introduction the main loop in the function dealing
with multi-vector MSI had error exit points ("break") with different
properties: In one case no IRQ descriptor lock is being held.
Nevertheless the subsequent error cleanup path assumed such a lock would
uniformly need releasing. Identify the case by setting "desc" to NULL,
thus allowing the unlock to be skipped as necessary.

This is CVE-2024-31143 / XSA-458.

Coverity ID: 1605298
Fixes: d1b6d0a02489 ("x86: enable multi-vector MSI")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
xen/arch/x86/irq.c