diff options
author | Daniel Sabogal <dsabogalcc@gmail.com> | 2017-10-23 13:36:03 -0400 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2017-10-23 20:14:55 +0000 |
commit | a977efc91e7ab0455214c2803a0947f439f9e221 (patch) | |
tree | 3c3e99f5b7e7ede311fa9a6b9b9303f59d0a0fc7 /main/xen/xsa237-5.patch | |
parent | 18a6777daafbe3fd88dbaf2551e6f19185683693 (diff) | |
download | aports-a977efc91e7ab0455214c2803a0947f439f9e221.tar.bz2 aports-a977efc91e7ab0455214c2803a0947f439f9e221.tar.xz |
main/xen: security fixes (xsa237 - xsa244)
CVE-2017-15590 XSA-237
XSA-238
CVE-2017-15589 XSA-239
CVE-2017-15595 XSA-240
CVE-2017-15588 XSA-241
CVE-2017-15593 XSA-242
CVE-2017-15592 XSA-243
CVE-2017-15594 XSA-244
Diffstat (limited to 'main/xen/xsa237-5.patch')
-rw-r--r-- | main/xen/xsa237-5.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/main/xen/xsa237-5.patch b/main/xen/xsa237-5.patch new file mode 100644 index 0000000000..155ba15d08 --- /dev/null +++ b/main/xen/xsa237-5.patch @@ -0,0 +1,37 @@ +From: Jan Beulich <jbeulich@suse.com> +Subject: x86/FLASK: fix unmap-domain-IRQ XSM hook + +The caller and the FLASK implementation of xsm_unmap_domain_irq() +disagreed about what the "data" argument points to in the MSI case: +Change both sides to pass/take a PCI device. + +This is part of XSA-237. + +Signed-off-by: Jan Beulich <jbeulich@suse.com> +Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> + +--- a/xen/arch/x86/irq.c ++++ b/xen/arch/x86/irq.c +@@ -2143,7 +2143,8 @@ int unmap_domain_pirq(struct domain *d, + nr = msi_desc->msi.nvec; + } + +- ret = xsm_unmap_domain_irq(XSM_HOOK, d, irq, msi_desc); ++ ret = xsm_unmap_domain_irq(XSM_HOOK, d, irq, ++ msi_desc ? msi_desc->dev : NULL); + if ( ret ) + goto done; + +--- a/xen/xsm/flask/hooks.c ++++ b/xen/xsm/flask/hooks.c +@@ -918,8 +918,8 @@ static int flask_unmap_domain_msi (struc + u32 *sid, struct avc_audit_data *ad) + { + #ifdef CONFIG_HAS_PCI +- struct msi_info *msi = data; +- u32 machine_bdf = (msi->seg << 16) | (msi->bus << 8) | msi->devfn; ++ const struct pci_dev *pdev = data; ++ u32 machine_bdf = (pdev->seg << 16) | (pdev->bus << 8) | pdev->devfn; + + AVC_AUDIT_DATA_INIT(ad, DEV); + ad->device = machine_bdf; |