hw/mips/malta: Silence warning from ubsan
When compiling QEMU with --enable-ubsan there is a undefined behavior warning when using the malta machine: hw/mips/malta.c:1200:32: runtime error: addition of unsigned offset to 0x7fb620600000 overflowed to 0x7fb6205fffff SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior hw/mips/malta.c:1200:32 To fix the issue, check the bios_size whether we really loaded the firmware before trying to byte-swap the instructions here. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com> Message-ID: <20250728115152.187728-1-thuth@redhat.com>
This commit is contained in:
parent
b3a51bb30b
commit
7af325c23e
1 changed files with 1 additions and 1 deletions
|
|
@ -1191,7 +1191,7 @@ void mips_malta_init(MachineState *machine)
|
|||
* In little endian mode the 32bit words in the bios are swapped,
|
||||
* a neat trick which allows bi-endian firmware.
|
||||
*/
|
||||
if (!TARGET_BIG_ENDIAN) {
|
||||
if (!TARGET_BIG_ENDIAN && bios_size > 0) {
|
||||
uint32_t *end, *addr;
|
||||
const size_t swapsize = MIN(bios_size, 0x3e0000);
|
||||
addr = rom_ptr(FLASH_ADDRESS, swapsize);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue