summaryrefslogtreecommitdiffstats
path: root/hw/audio
diff options
context:
space:
mode:
authorPhilippe Mathieu-Daudé2021-12-18 17:09:11 +0100
committerThomas Huth2022-03-21 10:24:51 +0100
commit79fa99831debc9782087e834382c577215f2f511 (patch)
tree71c6da4b9272efa4366169dc1853d500220fd2a4 /hw/audio
parenthw/audio/intel-hda: Do not ignore DMA overrun errors (diff)
downloadqemu-79fa99831debc9782087e834382c577215f2f511.tar.gz
qemu-79fa99831debc9782087e834382c577215f2f511.tar.xz
qemu-79fa99831debc9782087e834382c577215f2f511.zip
hw/audio/intel-hda: Restrict DMA engine to memories (not MMIO devices)
Issue #542 reports a reentrancy problem when the DMA engine accesses the HDA controller I/O registers. Fix by restricting the DMA engine to memories regions (forbidding MMIO devices such the HDA controller). Reported-by: OSS-Fuzz (Issue 28435) Reported-by: Alexander Bulekov <alxndr@bu.edu> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/542 CVE: CVE-2021-3611 Message-Id: <20211218160912.1591633-3-philmd@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'hw/audio')
-rw-r--r--hw/audio/intel-hda.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/audio/intel-hda.c b/hw/audio/intel-hda.c
index 47a36acc71..78a47bc08c 100644
--- a/hw/audio/intel-hda.c
+++ b/hw/audio/intel-hda.c
@@ -345,7 +345,7 @@ static void intel_hda_corb_run(IntelHDAState *d)
static void intel_hda_response(HDACodecDevice *dev, bool solicited, uint32_t response)
{
- const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED;
+ const MemTxAttrs attrs = { .memory = true };
HDACodecBus *bus = HDA_BUS(dev->qdev.parent_bus);
IntelHDAState *d = container_of(bus, IntelHDAState, codecs);
hwaddr addr;