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>
This commit is contained in:
Leon Alrae 2016-04-04 09:59:00 +01:00
parent ead5268f21
commit f2eb665a11

View File

@ -66,18 +66,13 @@ static uint64_t itc_tag_read(void *opaque, hwaddr addr, unsigned size)
{ {
MIPSITUState *tag = (MIPSITUState *)opaque; MIPSITUState *tag = (MIPSITUState *)opaque;
uint64_t index = addr >> 3; uint64_t index = addr >> 3;
uint64_t ret = 0;
switch (index) { if (index >= ITC_ADDRESSMAP_NUM) {
case 0 ... ITC_ADDRESSMAP_NUM:
ret = tag->ITCAddressMap[index];
break;
default:
qemu_log_mask(LOG_GUEST_ERROR, "Read 0x%" PRIx64 "\n", addr); 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) static void itc_reconfigure(MIPSITUState *tag)