vt82c686: avoid out-of-bounds read
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 10 Dec 2014 09:17:36 +0000 (10:17 +0100)
committerMichael Tokarev <mjt@tls.msk.ru>
Thu, 15 Jan 2015 07:44:13 +0000 (10:44 +0300)
superio_ioport_readb can read the 256th element of the array.
Coverity reports an out-of-bounds write in superio_ioport_writeb,
but it does not show the corresponding out-of-bounds read
because it cannot prove that it can happen.  Fix the root
cause of the problem (zhanghailang's patch instead fixes
the logic in superio_ioport_writeb).

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Cc: qemu-stable@nongnu.org
hw/isa/vt82c686.c

index 223b94793922c084d5d3e7d632c95e6ec5dd0ec3..2f53bf8194a200f8724819943d8e87d69253d1c7 100644 (file)
@@ -36,7 +36,7 @@
 
 typedef struct SuperIOConfig
 {
-    uint8_t config[0xff];
+    uint8_t config[0x100];
     uint8_t index;
     uint8_t data;
 } SuperIOConfig;