aboutsummaryrefslogtreecommitdiff
path: root/hw/misc
diff options
context:
space:
mode:
authorLeon Alrae <leon.alrae@imgtec.com>2016-04-04 09:59:00 +0100
committerLeon Alrae <leon.alrae@imgtec.com>2016-04-08 09:19:26 +0100
commitf2eb665a11a34ac9f6459f8a18c3d9d8be9ca359 (patch)
tree35f3bcd66b55f47a4a3030e21320cede36d35167 /hw/misc
parentead5268f2166101f7dde70598c9f538a90afd8ee (diff)
downloadqemu-f2eb665a11a34ac9f6459f8a18c3d9d8be9ca359.zip
qemu-f2eb665a11a34ac9f6459f8a18c3d9d8be9ca359.tar.gz
qemu-f2eb665a11a34ac9f6459f8a18c3d9d8be9ca359.tar.bz2
hw/mips_itu: fix off-by-one reported by Coverity
Fix off-by-one error in ITC Tag read. Remove the switch as we just want to check if index is in valid range rather than test against list of values. Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
Diffstat (limited to 'hw/misc')
-rw-r--r--hw/misc/mips_itu.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/hw/misc/mips_itu.c b/hw/misc/mips_itu.c
index 8461d23..da54550 100644
--- a/hw/misc/mips_itu.c
+++ b/hw/misc/mips_itu.c
@@ -66,18 +66,13 @@ static uint64_t itc_tag_read(void *opaque, hwaddr addr, unsigned size)
{
MIPSITUState *tag = (MIPSITUState *)opaque;
uint64_t index = addr >> 3;
- uint64_t ret = 0;
- switch (index) {
- case 0 ... ITC_ADDRESSMAP_NUM:
- ret = tag->ITCAddressMap[index];
- break;
- default:
+ if (index >= ITC_ADDRESSMAP_NUM) {
qemu_log_mask(LOG_GUEST_ERROR, "Read 0x%" PRIx64 "\n", addr);
- break;
+ return 0;
}
- return ret;
+ return tag->ITCAddressMap[index];
}
static void itc_reconfigure(MIPSITUState *tag)