Segfault in artist_vram_read

Bug #1890312 reported by Alexander Bulekov on 2020-08-04
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Undecided
Helge Deller

Bug Description

Hello,
Reproducer:

cat << EOF | ./hppa-softmmu/qemu-system-hppa -m 64 -display none \
-qtest stdio -accel qtest
writew 0xf8118001 0x105a
readq 0xf900f8ff
EOF

=================================================================
==20118==ERROR: AddressSanitizer: SEGV on unknown address 0x7fc6fb847672 (pc 0x55ec9c0f6828 bp 0x7ffd91000230 sp 0x7ffd90ffffd0 T0)
==20118==The signal is caused by a READ memory access.
    #0 0x55ec9c0f6828 in artist_vram_read /hw/display/artist.c:1174:15
    #1 0x55ec9b84a582 in memory_region_read_accessor /softmmu/memory.c:434:11
    #2 0x55ec9b7d1adc in access_with_adjusted_size /softmmu/memory.c:539:18
    #3 0x55ec9b7cd769 in memory_region_dispatch_read1 /softmmu/memory.c:1385:16
    #4 0x55ec9b7cc855 in memory_region_dispatch_read /softmmu/memory.c:1414:9
    #5 0x55ec9ae621de in flatview_read_continue /exec.c:3239:23
    #6 0x55ec9ae64fb1 in flatview_read /exec.c:3279:12
    #7 0x55ec9ae64af7 in address_space_read_full /exec.c:3292:18
    #8 0x55ec9b87c990 in address_space_read /include/exec/memory.h:2429:18
    #9 0x55ec9b87c990 in qtest_process_command /softmmu/qtest.c:485:13
    #10 0x55ec9b870c08 in qtest_process_inbuf /softmmu/qtest.c:710:9
    #11 0x55ec9b86f895 in qtest_read /softmmu/qtest.c:722:5
    #12 0x55ec9dd2b2f3 in qemu_chr_be_write_impl /chardev/char.c:188:9
    #13 0x55ec9dd2b477 in qemu_chr_be_write /chardev/char.c:200:9
    #14 0x55ec9dd3f763 in fd_chr_read /chardev/char-fd.c:68:9
    #15 0x55ec9de93b24 in qio_channel_fd_source_dispatch /io/channel-watch.c:84:12
    #16 0x7fc7261ad897 in g_main_context_dispatch ()
    #17 0x55ec9e28ba2b in glib_pollfds_poll /util/main-loop.c:217:9
    #18 0x55ec9e28915b in os_host_main_loop_wait /util/main-loop.c:240:5
    #19 0x55ec9e288af4 in main_loop_wait /util/main-loop.c:516:11
    #20 0x55ec9b891d00 in qemu_main_loop /softmmu/vl.c:1676:9
    #21 0x55ec9decb911 in main /softmmu/main.c:49:5

The error occurs even with Message-Id: <email address hidden> applied (I collected the above trace with the patch-set applied)

Thanks
-Alex

Helge Deller (hdeller) on 2020-08-04
Changed in qemu:
assignee: nobody → Helge Deller (hdeller)
Alexander Bulekov (a1xndr) wrote :

There's one more slightly further in the same function - line 1231 https://github.com/hdeller/qemu-hppa/blob/1e5391948f977932d17526c491d262a3cd99a690/hw/display/artist.c#L1231

cat << EOF | ./hppa-softmmu/qemu-system-hppa -m 64 -display none \
-qtest stdio -accel qtest
writeq 0xf8118005 0x1e7c50ff016d65ff
readl 0xf9080100
EOF

[I 1596601465.827371] OPENED
[R +0.043473] writeq 0xf8118005 0x1e7c50ff016d65ff
18615@1596601465.870899:artist_reg_write 1 0x118005 DST_BM_ACCESS <- 0x1e
18615@1596601465.870911:artist_reg_write 2 0x118006 DST_BM_ACCESS <- 0x7c50
18615@1596601465.870918:artist_reg_write 4 0x118008 SRC_BM_ACCESS <- 0xff016d65
18615@1596601465.870924:artist_reg_write 1 0x11800c CONTROL_PLANE <- 0xff
OK
[S +0.043557] OK
[R +0.043574] readl 0xf9080100
AddressSanitizer:DEADLYSIGNAL
=================================================================
==18615==ERROR: AddressSanitizer: SEGV on unknown address 0x7f12d2a01040 (pc 0x560323116048 bp 0x7fffa8723bf0 sp 0x7fffa8723990 T0)
==18615==The signal is caused by a READ memory access.
    #0 0x560323116048 in artist_vram_read /home/alxndr/Development/qemu/general-fuzz/hw/display/artist.c:1231:23
    #1 0x560322868582 in memory_region_read_accessor /home/alxndr/Development/qemu/general-fuzz/softmmu/memory.c:434:11
...

Fixed in commit a501bfc91763d4642390090dd4e6039d67b63702.

Changed in qemu:
status: New → Fix Committed
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers