]> www.infradead.org Git - users/dwmw2/qemu.git/commitdiff
hw/arm/smmuv3: Fix Coverity issue in smmuv3_record_event
authorEric Auger <eric.auger@redhat.com>
Fri, 18 May 2018 16:48:07 +0000 (17:48 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 18 May 2018 16:48:07 +0000 (17:48 +0100)
Coverity complains about use of uninitialized Evt struct.
The EVT_SET_TYPE and similar setters use deposit32() on fields
in the struct, so they read the uninitialized existing values.
In cases where we don't set all the fields in the event struct
we'll end up leaking random uninitialized data from QEMU's
stack into the guest.

Initializing the struct with "Evt evt = {};" ought to satisfy
Coverity and fix the data leak.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 1526493784-25328-2-git-send-email-eric.auger@redhat.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/arm/smmuv3.c

index b3026dea20240b35b52d085a90649f3379f0821d..42dc521c13a1d8d72c714a6528b167fb316199cc 100644 (file)
@@ -143,7 +143,7 @@ static MemTxResult smmuv3_write_eventq(SMMUv3State *s, Evt *evt)
 
 void smmuv3_record_event(SMMUv3State *s, SMMUEventInfo *info)
 {
-    Evt evt;
+    Evt evt = {};
     MemTxResult r;
 
     if (!smmuv3_eventq_enabled(s)) {