2021-03-20 13:14:42 |
Aaro Koskinen |
description |
A trivial program compiler with QuickBASIC 4.5 with integer overflow will crash QEMU when ran under MS-DOS 5.0 or FreeDOS 1.2:
C:\KILLER>type killer.bas
A% = VAL("99999"):PRINT A%
C:\KILLER>killer.exe
**
ERROR:../qemu-5.2.0/accel/tcg/tcg-cpus.c:541:tcg_handle_interrupt: assertion failed: (qemu_mutex_iothread_locked())
Aborted
QEMU version v5.2, compiler for ARM, and started with command line:
qemu-system-i386 -curses -cpu 486 -m 1 -drive dos.img
The same test under Ubuntu QEMU and KVM/x86_64 (QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.14)) will just silently hang the QEMU. On DOSBOX, the machine does not die and program outputs the value -31073.
The EXE to reproduce the issue is attached. |
A trivial program compiled with QuickBASIC 4.5 with integer overflow will crash QEMU when ran under MS-DOS 5.0 or FreeDOS 1.2:
C:\KILLER>type killer.bas
A% = VAL("99999"):PRINT A%
C:\KILLER>killer.exe
**
ERROR:../qemu-5.2.0/accel/tcg/tcg-cpus.c:541:tcg_handle_interrupt: assertion failed: (qemu_mutex_iothread_locked())
Aborted
QEMU version v5.2, compiler for ARM, and started with command line:
qemu-system-i386 -curses -cpu 486 -m 1 -drive dos.img
The same test under Ubuntu QEMU and KVM/x86_64 (QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.14)) will just silently hang the QEMU. On DOSBOX, the machine does not die and program outputs the value -31073.
The EXE to reproduce the issue is attached. |
|