The upstream fixes in
https://gitlab.freedesktop.org/slirp/libslirp/-/commit/6489ebbc691f5d97221ad154d570a231e30fb369
and
https://gitlab.freedesktop.org/slirp/libslirp/-/commit/cc20d9ac578aec5502dcb26557765d3e9433cb26
resolved the failure we were seeing in our internal test-case.
Thanks!

On Tue, Jun 21, 2022 at 12:47 PM Patrick Venture <vent...@google.com> wrote:

>
>
> On Fri, Jun 17, 2022 at 7:37 AM Alexander Bulekov <alx...@bu.edu> wrote:
>
>> On 220617 1217, Thomas Huth wrote:
>> > On 16/06/2022 21.03, Alexander Bulekov wrote:
>> > > On 220616 0930, Patrick Venture wrote:
>> > > > On Thu, Jun 16, 2022 at 6:31 AM Alexander Bulekov <alx...@bu.edu>
>> wrote:
>> > > >
>> > > > > Is this an --enable-sanitizers build? The virtual-device fuzzer
>> catches
>> > > > >
>> > > >
>> > > > Yeah - it should be reproducible with a sanitizers build from HEAD
>> -- I can
>> > > > try to get a manual instance going again without automation to try
>> and
>> > > > reproduce it.  We're testing on v7.0.0 which is when we started
>> seeing
>> > > > this, I don't think we saw it in 6.2.0.
>> > >
>> > > Here are a few reproducers (run with --enable-sanitizers):
>> > >
>> > > This one complains about misalignments in ip_header, ipasfrag, qlink,
>> > > ip...
>> > >
>> > > cat << EOF | ./qemu-system-i386 -display none -machine accel=qtest,
>> -m \
>> > > 512M,slots=4,maxmem=0xffff000000000000 -machine q35 -nodefaults
>> -device \
>> > > vmxnet3,netdev=net0 -netdev user,id=net0 -object \
>> > > memory-backend-ram,id=mem1,size=10M -device \
>> > > pc-dimm,id=nv1,memdev=mem1,addr=0xba19ff00000000 -object \
>> > > memory-backend-ram,id=mem2,size=10M -device \
>> > > pc-dimm,id=nv2,memdev=mem2,addr=0xbe53e14abaa00000 -object \
>> > > memory-backend-ram,id=mem3,size=10M -device \
>> > > pc-dimm,id=nv3,memdev=mem3,addr=0xfe0000e9cae00000 -object \
>> > > memory-backend-ram,id=mem4,size=10M -device \
>> > > pc-dimm,id=nv4,memdev=mem4,addr=0xf0f0f0f00000000 -qtest stdio
>> > > outl 0xcf8 0x80000810
>> > > outl 0xcfc 0xe0000000
>> > > outl 0xcf8 0x80000814
>> > > outl 0xcfc 0xe0001000
>> > > outl 0xcf8 0x80000804
>> > > outw 0xcfc 0x06
>> > > write 0x3e 0x1 0x02
>> > > write 0x39 0x1 0x20
>> > > write 0x29 0x1 0x10
>> > > write 0x2c 0x1 0x0f
>> > > write 0x2d 0x1 0x0f
>> > > write 0x2e 0x1 0x0f
>> > > write 0x2f 0x1 0x0f
>> > > write 0xf0f0f0f00001012 0x1 0xfe
>> > > write 0xf0f0f0f00001013 0x1 0xca
>> > > write 0xf0f0f0f00001014 0x1 0xe9
>> > > write 0xf0f0f0f00001017 0x1 0xfe
>> > > write 0xf0f0f0f0000103a 0x1 0x01
>> > > write 0xfe0000e9cafe0009 0x1 0x40
>> > > write 0xfe0000e9cafe0019 0x1 0x40
>> > > write 0x0 0x1 0xe1
>> > > write 0x1 0x1 0xfe
>> > > write 0x2 0x1 0xbe
>> > > write 0x3 0x1 0xba
>> > > writel 0xe0001020 0xcafe0000
>> > > write 0xfe0000e9cafe0029 0x1 0x40
>> > > write 0xfe0000e9cafe0039 0x1 0x40
>> > > write 0xfe0000e9cafe0049 0x1 0x40
>> > > write 0xfe0000e9cafe0059 0x1 0x40
>> > > write 0x1f65190b 0x1 0x08
>> > > write 0x1f65190d 0x1 0x46
>> > > write 0x1f65190e 0x1 0x03
>> > > write 0x1f651915 0x1 0x01
>> > > write 0xfe0000e9cafe0069 0x1 0x40
>> > > write 0xfe0000e9cafe0079 0x1 0x40
>> > > write 0xfe0000e9cafe0089 0x1 0x40
>> > > write 0xfe0000e9cafe0099 0x1 0x40
>> > > write 0xfe0000e9cafe009d 0x1 0x10
>> > > write 0xfe0000e9cafe00a0 0x1 0xff
>> > > write 0xfe0000e9cafe00a1 0x1 0x18
>> > > write 0xfe0000e9cafe00a2 0x1 0x65
>> > > write 0xfe0000e9cafe00a3 0x1 0x1f
>> > > write 0xfe0000e9cafe00a9 0x1 0x40
>> > > write 0xfe0000e9cafe00ad 0x1 0x1c
>> > > write 0xe0000602 0x1 0x00
>> > > EOF
>> > >
>> > > This one complains about misalignments in ip6_header, ip6_hdrctl...
>> > >
>> > > cat << EOF | ./qemu-system-i386 -display none -machine accel=qtest,
>> -m \
>> > > 512M,slots=1,maxmem=0xffff000000000000 -machine q35 -nodefaults
>> -device \
>> > > vmxnet3,netdev=net0 -netdev user,id=net0 -object \
>> > > memory-backend-ram,id=mem1,size=4M -device \
>> > > pc-dimm,id=nv1,memdev=mem1,addr=0x1dd860000000000 -qtest stdio
>> > > outl 0xcf8 0x80000810
>> > > outl 0xcfc 0xe0000000
>> > > outl 0xcf8 0x80000814
>> > > outl 0xcfc 0xe0001000
>> > > outl 0xcf8 0x80000804
>> > > outw 0xcfc 0x06
>> > > write 0x0 0x1 0xe1
>> > > write 0x1 0x1 0xfe
>> > > write 0x2 0x1 0xbe
>> > > write 0x3 0x1 0xba
>> > > write 0x3e 0x1 0x01
>> > > write 0x39 0x1 0x01
>> > > write 0x28 0x1 0x01
>> > > write 0x29 0x1 0x01
>> > > write 0x2d 0x1 0x86
>> > > write 0x2e 0x1 0xdd
>> > > write 0x2f 0x1 0x01
>> > > write 0x1dd860000000112 0x1 0x10
>> > > write 0x1dd86000000013c 0x1 0x02
>> > > writel 0xe0001020 0xcafe0000
>> > > write 0x1009 0x1 0x40
>> > > write 0x100c 0x1 0x86
>> > > write 0x100d 0x1 0xdd
>> > > write 0x1011 0x1 0x10
>> > > write 0x1019 0x1 0x7e
>> > > write 0x101d 0x1 0x10
>> > > write 0x4d56 0x1 0x02
>> > > write 0xe0000603 0x1 0x00
>> > > EOF
>> >
>> > Could you please open bugs on
>> > https://gitlab.freedesktop.org/slirp/libslirp/-/issues so that this
>> > information does not get lost?
>>
>> Done:
>> https://gitlab.freedesktop.org/slirp/libslirp/-/issues/62
>> https://gitlab.freedesktop.org/slirp/libslirp/-/issues/63
>
>
> Thank you!
>
>>
>>
>> -Alex
>>
>> >
>> >  Thomas
>> >
>> > > >
>> > > > > these periodically while fuzzing network-devices. However I don't
>> think
>> > > > > OSS-Fuzz creates reports for them for some reason. I can create
>> qtest
>> > > > > reproducers, if that is useful.
>> > > > > -Alex
>> > > > >
>> > > > > On 220615 0942, Patrick Venture wrote:
>> > > > > > Hey - I wanted to ask if someone else has seen this or has
>> suggestions on
>> > > > > > how to fix it in libslirp / qemu.
>> > > > > >
>> > > > > > libslirp version: 3ad1710a96678fe79066b1469cead4058713a1d9
>> > > > > >
>> > > > > > The blow is line:
>> > > > > >
>> > > > >
>> https://gitlab.freedesktop.org/slirp/libslirp/-/blob/master/src/tcp_input.c#L310
>> > > > > >
>> > > > > > I0614 13:44:44.304087    2040 bytestream.cc:22] QEMU:
>> > > > > > third_party/libslirp/src/tcp_input.c:310:56: runtime error:
>> member access
>> > > > > > within misaligned address 0xffff9a4000f4 for type 'struct
>> qlink', which
>> > > > > > requires 8 byte alignment
>> > > > > > I0614 13:44:44.304156    2040 bytestream.cc:22] QEMU:
>> 0xffff9a4000f4:
>> > > > > note:
>> > > > > > pointer points here
>> > > > > > I0614 13:44:44.304184    2040 bytestream.cc:22] QEMU:   00 00
>> 00 00 00 00
>> > > > > > 00 02  20 02 0a 00 00 01 42 01  0a 00 02 02 42 01 0a 00  00 01
>> 86 dd 60
>> > > > > 02
>> > > > > > dd 79
>> > > > > > I0614 13:44:44.304204    2040 bytestream.cc:22] QEMU:
>>      ^
>> > > > > > I0614 13:44:44.641173    2040 bytestream.cc:22] QEMU:     #0
>> > > > > 0xaaaacbe34bd8
>> > > > > > in tcp_input third_party/libslirp/src/tcp_input.c:310:56
>> > > > > > I0614 13:44:44.641239    2040 bytestream.cc:22] QEMU:     #1
>> > > > > 0xaaaacbe22a94
>> > > > > > in ip6_input third_party/libslirp/src/ip6_input.c:74:9
>> > > > > > I0614 13:44:44.641262    2040 bytestream.cc:22] QEMU:     #2
>> > > > > 0xaaaacbe0bbbc
>> > > > > > in slirp_input third_party/libslirp/src/slirp.c:1169:13
>> > > > > > I0614 13:44:44.641280    2040 bytestream.cc:22] QEMU:     #3
>> > > > > 0xaaaacbd55f6c
>> > > > > > in net_slirp_receive third_party/qemu/net/slirp.c:136:5
>> > > > > > I0614 13:44:44.641296    2040 bytestream.cc:22] QEMU:     #4
>> > > > > 0xaaaacbd4e77c
>> > > > > > in nc_sendv_compat third_party/qemu/net/net.c
>> > > > > > I0614 13:44:44.641323    2040 bytestream.cc:22] QEMU:     #5
>> > > > > 0xaaaacbd4e77c
>> > > > > > in qemu_deliver_packet_iov third_party/qemu/net/net.c:850:15
>> > > > > > I0614 13:44:44.641342    2040 bytestream.cc:22] QEMU:     #6
>> > > > > 0xaaaacbd50bfc
>> > > > > > in qemu_net_queue_deliver_iov
>> third_party/qemu/net/queue.c:179:11
>> > > > > > I0614 13:44:44.641359    2040 bytestream.cc:22] QEMU:     #7
>> > > > > 0xaaaacbd50bfc
>> > > > > > in qemu_net_queue_send_iov third_party/qemu/net/queue.c:246:11
>> > > > > > I0614 13:44:44.641382    2040 bytestream.cc:22] QEMU:     #8
>> > > > > 0xaaaacbd4a88c
>> > > > > > in qemu_sendv_packet_async third_party/qemu/net/net.c:891:12
>> > > > > > I0614 13:44:44.641396    2040 bytestream.cc:22] QEMU:     #9
>> > > > > 0xaaaacacb1de0
>> > > > > > in virtio_net_flush_tx
>> third_party/qemu/hw/net/virtio-net.c:2586:15
>> > > > > > I0614 13:44:44.641416    2040 bytestream.cc:22] QEMU:     #10
>> > > > > > 0xaaaacacb1580 in virtio_net_tx_bh
>> > > > > > third_party/qemu/hw/net/virtio-net.c:2703:11
>> > > > > > I0614 13:44:44.641438    2040 bytestream.cc:22] QEMU:     #11
>> > > > > > 0xaaaacc2bcf64 in aio_bh_call
>> third_party/qemu/util/async.c:142:5
>> > > > > > I0614 13:44:44.641463    2040 bytestream.cc:22] QEMU:     #12
>> > > > > > 0xaaaacc2bcf64 in aio_bh_poll
>> third_party/qemu/util/async.c:170:13
>> > > > > > I0614 13:44:44.641477    2040 bytestream.cc:22] QEMU:     #13
>> > > > > > 0xaaaacc2b8f70 in aio_dispatch
>> third_party/qemu/util/aio-posix.c:420:5
>> > > > > > I0614 13:44:44.641495    2040 bytestream.cc:22] QEMU:     #14
>> > > > > > 0xaaaacc2bf120 in aio_ctx_dispatch
>> third_party/qemu/util/async.c:312:5
>> > > > > > I0614 13:44:44.641510    2040 bytestream.cc:22] QEMU:     #15
>> > > > > > 0xaaaacc3a7690 in g_main_dispatch
>> third_party/glib/glib/gmain.c:3417:27
>> > > > > > I0614 13:44:44.641525    2040 bytestream.cc:22] QEMU:     #16
>> > > > > > 0xaaaacc3a7690 in g_main_context_dispatch
>> > > > > > third_party/glib/glib/gmain.c:4135:7
>> > > > > > I0614 13:44:44.641546    2040 bytestream.cc:22] QEMU:     #17
>> > > > > > 0xaaaacc2de3ec in glib_pollfds_poll
>> > > > > third_party/qemu/util/main-loop.c:232:9
>> > > > > > I0614 13:44:44.641562    2040 bytestream.cc:22] QEMU:     #18
>> > > > > > 0xaaaacc2de3ec in os_host_main_loop_wait
>> > > > > > third_party/qemu/util/main-loop.c:255:5
>> > > > > > I0614 13:44:44.641580    2040 bytestream.cc:22] QEMU:     #19
>> > > > > > 0xaaaacc2de3ec in main_loop_wait
>> third_party/qemu/util/main-loop.c:531:11
>> > > > > > I0614 13:44:44.641598    2040 bytestream.cc:22] QEMU:     #20
>> > > > > > 0xaaaacbd82798 in qemu_main_loop
>> > > > > third_party/qemu/softmmu/runstate.c:727:9
>> > > > > > I0614 13:44:44.641612    2040 bytestream.cc:22] QEMU:     #21
>> > > > > > 0xaaaacadacb5c in main
>> > > > > >
>> > > > > > Patrick
>> > > > >
>> > >
>> >
>>
>

Reply via email to