Message ID | 20211002123101.14675-2-mark.cave-ayland@ilande.co.uk |
---|---|
State | New |
Headers | show |
Series | nubus: a couple of Coverity fixes | expand |
On 10/2/21 14:31, Mark Cave-Ayland wrote: > Coverity thinks that the slot_offset multiplications in nubus_device_realize() > might overflow because the resulting hwaddr is 64-bit whilst the multiplication > is only done at 32-bits. > > Add an explicit ULL suffix to NUBUS_SUPER_SLOT_SIZE and NUBUS_SUPER_SLOT_SIZE > to ensure that the multiplication is also done at 64-bits. > > Fixes: Coverity CID 1464070 > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > --- > include/hw/nubus/nubus.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
diff --git a/include/hw/nubus/nubus.h b/include/hw/nubus/nubus.h index b3b4d2eadb..677dd6e5a2 100644 --- a/include/hw/nubus/nubus.h +++ b/include/hw/nubus/nubus.h @@ -15,13 +15,13 @@ #include "qom/object.h" #include "qemu/units.h" -#define NUBUS_SUPER_SLOT_SIZE 0x10000000U +#define NUBUS_SUPER_SLOT_SIZE 0x10000000ULL #define NUBUS_SUPER_SLOT_NB 0xe #define NUBUS_SLOT_BASE (NUBUS_SUPER_SLOT_SIZE * \ (NUBUS_SUPER_SLOT_NB + 1)) -#define NUBUS_SLOT_SIZE 0x01000000 +#define NUBUS_SLOT_SIZE 0x01000000ULL #define NUBUS_FIRST_SLOT 0x0 #define NUBUS_LAST_SLOT 0xf #define NUBUS_SLOT_NB (NUBUS_LAST_SLOT - NUBUS_FIRST_SLOT + 1)
Coverity thinks that the slot_offset multiplications in nubus_device_realize() might overflow because the resulting hwaddr is 64-bit whilst the multiplication is only done at 32-bits. Add an explicit ULL suffix to NUBUS_SUPER_SLOT_SIZE and NUBUS_SUPER_SLOT_SIZE to ensure that the multiplication is also done at 64-bits. Fixes: Coverity CID 1464070 Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- include/hw/nubus/nubus.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)