diff mbox

9pfs: add check for relative path

Message ID 1470892391-4917-1-git-send-email-ppandit@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Prasad Pandit Aug. 11, 2016, 5:13 a.m. UTC
From: Prasad J Pandit <pjp@fedoraproject.org>

At various places in 9pfs back-end, it creates full path by
concatenating two path strings. It could lead to a path
traversal issue if one of the parameter was a relative path.
Add check to avoid it.

Reported-by: Felix Wilhelm <fwilhelm@ernw.de>
Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
---
 hw/9pfs/9p-local.c | 31 +++++++++++++++++++++++++++----
 1 file changed, 27 insertions(+), 4 deletions(-)

Comments

no-reply@patchew.org Aug. 11, 2016, 6:17 a.m. UTC | #1
Hi,

Your series failed automatic build test. Please find the testing commands and
their output below. If you have docker installed, you can probably reproduce it
locally.

Subject: [Qemu-devel] [PATCH] 9pfs: add check for relative path
Message-id: 1470892391-4917-1-git-send-email-ppandit@redhat.com
Type: series

=== TEST SCRIPT BEGIN ===
#!/bin/bash
set -e
git submodule update --init dtc
make J=8 docker-test-quick@centos6

# we need CURL DPRINTF patch
# http://patchew.org/QEMU/1470027888-24381-1-git-send-email-famz%40redhat.com/
#make J=8 docker-test-mingw@fedora
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
4e97568 9pfs: add check for relative path

=== OUTPUT BEGIN ===
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into 'dtc'...
Submodule path 'dtc': checked out '65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf'
  BUILD centos6
  ARCHIVE qemu.tgz
  ARCHIVE dtc.tgz
  COPY RUNNER
  RUN test-quick in centos6
No C++ compiler available; disabling C++ specific optional code
Install prefix    /tmp/qemu-test/src/tests/docker/install
BIOS directory    /tmp/qemu-test/src/tests/docker/install/share/qemu
binary directory  /tmp/qemu-test/src/tests/docker/install/bin
library directory /tmp/qemu-test/src/tests/docker/install/lib
module directory  /tmp/qemu-test/src/tests/docker/install/lib/qemu
libexec directory /tmp/qemu-test/src/tests/docker/install/libexec
include directory /tmp/qemu-test/src/tests/docker/install/include
config directory  /tmp/qemu-test/src/tests/docker/install/etc
local state directory   /tmp/qemu-test/src/tests/docker/install/var
Manual directory  /tmp/qemu-test/src/tests/docker/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path       /tmp/qemu-test/src
C compiler        cc
Host C compiler   cc
C++ compiler      
Objective-C compiler cc
ARFLAGS           rv
CFLAGS            -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -g 
QEMU_CFLAGS       -I/usr/include/pixman-1    -fPIE -DPIE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common  -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all
LDFLAGS           -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g 
make              make
install           install
python            python -B
smbd              /usr/sbin/smbd
module support    no
host CPU          x86_64
host big endian   no
target list       x86_64-softmmu aarch64-softmmu
tcg debug enabled no
gprof enabled     no
sparse enabled    no
strip binaries    yes
profiler          no
static build      no
pixman            system
SDL support       yes (1.2.14)
GTK support       no 
GTK GL support    no
VTE support       no 
TLS priority      NORMAL
GNUTLS support    no
GNUTLS rnd        no
libgcrypt         no
libgcrypt kdf     no
nettle            no 
nettle kdf        no
libtasn1          no
curses support    no
virgl support     no
curl support      no
mingw32 support   no
Audio drivers     oss
Block whitelist (rw) 
Block whitelist (ro) 
VirtFS support    no
VNC support       yes
VNC SASL support  no
VNC JPEG support  no
VNC PNG support   no
xen support       no
brlapi support    no
bluez  support    no
Documentation     no
PIE               yes
vde support       no
netmap support    no
Linux AIO support no
ATTR/XATTR support yes
Install blobs     yes
KVM support       yes
RDMA support      no
TCG interpreter   no
fdt support       yes
preadv support    yes
fdatasync         yes
madvise           yes
posix_madvise     yes
uuid support      no
libcap-ng support no
vhost-net support yes
vhost-scsi support yes
Trace backends    log
spice support     no 
rbd support       no
xfsctl support    no
smartcard support no
libusb            no
usb net redir     no
OpenGL support    no
OpenGL dmabufs    no
libiscsi support  no
libnfs support    no
build guest agent yes
QGA VSS support   no
QGA w32 disk info no
QGA MSI support   no
seccomp support   no
coroutine backend ucontext
coroutine pool    yes
GlusterFS support no
Archipelago support no
gcov              gcov
gcov enabled      no
TPM support       yes
libssh2 support   no
TPM passthrough   yes
QOM debugging     yes
vhdx              no
lzo support       no
snappy support    no
bzip2 support     no
NUMA host support no
tcmalloc support  no
jemalloc support  no
avx2 optimization no
  GEN   x86_64-softmmu/config-devices.mak.tmp
  GEN   aarch64-softmmu/config-devices.mak.tmp
  GEN   config-host.h
  GEN   qemu-options.def
  GEN   qmp-commands.h
  GEN   qapi-types.h
  GEN   qapi-visit.h
  GEN   qapi-event.h
  GEN   x86_64-softmmu/config-devices.mak
  GEN   aarch64-softmmu/config-devices.mak
  GEN   qmp-introspect.h
  GEN   tests/test-qapi-types.h
  GEN   tests/test-qapi-visit.h
  GEN   tests/test-qmp-commands.h
  GEN   tests/test-qapi-event.h
  GEN   tests/test-qmp-introspect.h
  GEN   config-all-devices.mak
  GEN   trace/generated-events.h
  GEN   trace/generated-tracers.h
  GEN   trace/generated-tcg-tracers.h
  GEN   trace/generated-helpers-wrappers.h
  GEN   trace/generated-helpers.h
  CC    tests/qemu-iotests/socket_scm_helper.o
  GEN   qga/qapi-generated/qga-qapi-types.h
  GEN   qga/qapi-generated/qga-qapi-visit.h
  GEN   qga/qapi-generated/qga-qmp-commands.h
  GEN   qga/qapi-generated/qga-qapi-types.c
  GEN   qga/qapi-generated/qga-qapi-visit.c
  GEN   qga/qapi-generated/qga-qmp-marshal.c
  GEN   qmp-introspect.c
  GEN   qapi-types.c
  GEN   qapi-visit.c
  GEN   qapi-event.c
  CC    qapi/qapi-visit-core.o
  CC    qapi/qapi-dealloc-visitor.o
  CC    qapi/qmp-input-visitor.o
  CC    qapi/qmp-output-visitor.o
  CC    qapi/qmp-registry.o
  CC    qapi/qmp-dispatch.o
  CC    qapi/string-input-visitor.o
  CC    qapi/string-output-visitor.o
  CC    qapi/opts-visitor.o
  CC    qapi/qapi-clone-visitor.o
  CC    qapi/qmp-event.o
  CC    qapi/qapi-util.o
  CC    qobject/qnull.o
  CC    qobject/qint.o
  CC    qobject/qstring.o
  CC    qobject/qdict.o
  CC    qobject/qlist.o
  CC    qobject/qfloat.o
  CC    qobject/qbool.o
  CC    qobject/qjson.o
  CC    qobject/qobject.o
  CC    qobject/json-lexer.o
  CC    qobject/json-streamer.o
  CC    qobject/json-parser.o
  GEN   trace/generated-events.c
  CC    trace/control.o
  CC    trace/qmp.o
  CC    util/osdep.o
  CC    util/cutils.o
  CC    util/unicode.o
  CC    util/qemu-timer-common.o
  CC    util/compatfd.o
  CC    util/event_notifier-posix.o
  CC    util/mmap-alloc.o
  CC    util/oslib-posix.o
  CC    util/qemu-openpty.o
  CC    util/qemu-thread-posix.o
  CC    util/memfd.o
  CC    util/path.o
  CC    util/envlist.o
  CC    util/module.o
  CC    util/bitmap.o
  CC    util/bitops.o
  CC    util/hbitmap.o
  CC    util/fifo8.o
  CC    util/acl.o
  CC    util/error.o
  CC    util/qemu-error.o
  CC    util/id.o
  CC    util/iov.o
  CC    util/qemu-config.o
  CC    util/qemu-sockets.o
  CC    util/uri.o
  CC    util/notify.o
  CC    util/qemu-option.o
  CC    util/qemu-progress.o
  CC    util/hexdump.o
  CC    util/crc32c.o
  CC    util/throttle.o
  CC    util/getauxval.o
  CC    util/readline.o
  CC    util/rfifolock.o
  CC    util/rcu.o
  CC    util/qemu-coroutine.o
  CC    util/qemu-coroutine-lock.o
  CC    util/qemu-coroutine-io.o
  CC    util/qemu-coroutine-sleep.o
  CC    util/coroutine-ucontext.o
  CC    util/buffer.o
  CC    util/timed-average.o
  CC    util/base64.o
  CC    util/log.o
  CC    util/qdist.o
  CC    util/qht.o
  CC    util/range.o
  CC    crypto/pbkdf-stub.o
  CC    stubs/arch-query-cpu-def.o
  CC    stubs/bdrv-next-monitor-owned.o
  CC    stubs/blk-commit-all.o
  CC    stubs/blockdev-close-all-bdrv-states.o
/tmp/qemu-test/src/util/qht.c: In function ‘qht_reset_size’:
/tmp/qemu-test/src/util/qht.c:413: warning: ‘new’ may be used uninitialized in this function
  CC    stubs/clock-warp.o
  CC    stubs/cpu-get-clock.o
  CC    stubs/cpu-get-icount.o
  CC    stubs/dump.o
  CC    stubs/fdset-add-fd.o
  CC    stubs/fdset-find-fd.o
  CC    stubs/fdset-get-fd.o
  CC    stubs/fdset-remove-fd.o
  CC    stubs/gdbstub.o
  CC    stubs/get-fd.o
  CC    stubs/get-next-serial.o
  CC    stubs/get-vm-name.o
  CC    stubs/iothread-lock.o
  CC    stubs/is-daemonized.o
  CC    stubs/mon-is-qmp.o
  CC    stubs/machine-init-done.o
  CC    stubs/migr-blocker.o
  CC    stubs/mon-printf.o
  CC    stubs/monitor-init.o
  CC    stubs/notify-event.o
  CC    stubs/qtest.o
  CC    stubs/replay.o
  CC    stubs/replay-user.o
  CC    stubs/reset.o
  CC    stubs/runstate-check.o
  CC    stubs/set-fd-handler.o
  CC    stubs/slirp.o
  CC    stubs/sysbus.o
  CC    stubs/trace-control.o
  CC    stubs/uuid.o
  CC    stubs/vm-stop.o
  CC    stubs/vmstate.o
  CC    stubs/cpus.o
  CC    stubs/kvm.o
  CC    stubs/qmp_pc_dimm_device_list.o
  CC    stubs/target-monitor-defs.o
  CC    stubs/target-get-monitor-def.o
  CC    stubs/vhost.o
  CC    stubs/iohandler.o
  CC    stubs/smbios_type_38.o
  CC    stubs/ipmi.o
  CC    stubs/pc_madt_cpu_entry.o
  CC    contrib/ivshmem-client/ivshmem-client.o
  CC    contrib/ivshmem-client/main.o
  CC    contrib/ivshmem-server/main.o
  CC    contrib/ivshmem-server/ivshmem-server.o
  CC    qemu-nbd.o
  CC    async.o
  CC    thread-pool.o
  CC    block.o
  CC    blockjob.o
  CC    main-loop.o
  CC    iohandler.o
  CC    qemu-timer.o
  CC    aio-posix.o
  CC    qemu-io-cmds.o
  CC    block/raw_bsd.o
  CC    block/qcow.o
  CC    block/vdi.o
  CC    block/vmdk.o
  CC    block/cloop.o
  CC    block/bochs.o
  CC    block/vpc.o
  CC    block/vvfat.o
  CC    block/qcow2.o
  CC    block/qcow2-refcount.o
  CC    block/qcow2-cluster.o
  CC    block/qcow2-snapshot.o
  CC    block/qcow2-cache.o
  CC    block/qed.o
  CC    block/qed-gencb.o
  CC    block/qed-l2-cache.o
  CC    block/qed-table.o
  CC    block/qed-cluster.o
  CC    block/qed-check.o
  CC    block/quorum.o
  CC    block/parallels.o
  CC    block/blkdebug.o
  CC    block/blkverify.o
  CC    block/blkreplay.o
  CC    block/block-backend.o
  CC    block/snapshot.o
  CC    block/qapi.o
  CC    block/raw-posix.o
  CC    block/null.o
  CC    block/mirror.o
  CC    block/commit.o
  CC    block/io.o
  CC    block/throttle-groups.o
  CC    block/nbd.o
  CC    block/nbd-client.o
  CC    block/sheepdog.o
  CC    block/accounting.o
  CC    block/dirty-bitmap.o
  CC    block/write-threshold.o
  CC    block/crypto.o
  CC    nbd/server.o
  CC    nbd/client.o
  CC    nbd/common.o
  CC    block/dmg.o
  CC    crypto/init.o
  CC    crypto/hash.o
  CC    crypto/hash-glib.o
  CC    crypto/aes.o
  CC    crypto/desrfb.o
  CC    crypto/cipher.o
  CC    crypto/tlscreds.o
  CC    crypto/tlscredsanon.o
  CC    crypto/tlscredsx509.o
  CC    crypto/tlssession.o
  CC    crypto/secret.o
  CC    crypto/random-platform.o
  CC    crypto/pbkdf.o
  CC    crypto/ivgen.o
  CC    crypto/ivgen-essiv.o
  CC    crypto/ivgen-plain.o
  CC    crypto/ivgen-plain64.o
  CC    crypto/afsplit.o
  CC    crypto/xts.o
  CC    crypto/block.o
  CC    crypto/block-qcow.o
  CC    crypto/block-luks.o
  CC    io/channel.o
  CC    io/channel-buffer.o
  CC    io/channel-command.o
  CC    io/channel-file.o
  CC    io/channel-socket.o
  CC    io/channel-tls.o
  CC    io/channel-watch.o
  CC    io/channel-websock.o
  CC    io/channel-util.o
  CC    io/task.o
  CC    qom/object.o
  CC    qom/container.o
  CC    qom/qom-qobject.o
  CC    qom/object_interfaces.o
  GEN   qemu-img-cmds.h
  CC    qemu-io.o
  CC    qemu-bridge-helper.o
  CC    blockdev.o
  CC    blockdev-nbd.o
  CC    iothread.o
  CC    qdev-monitor.o
  CC    device-hotplug.o
  CC    os-posix.o
  CC    qemu-char.o
  CC    page_cache.o
  CC    accel.o
  CC    bt-host.o
  CC    bt-vhci.o
  CC    dma-helpers.o
  CC    vl.o
  CC    tpm.o
  CC    device_tree.o
  GEN   qmp-marshal.c
  CC    qmp.o
  CC    hmp.o
  CC    tcg-runtime.o
  CC    audio/audio.o
  CC    audio/noaudio.o
  CC    audio/wavaudio.o
  CC    audio/mixeng.o
  CC    audio/sdlaudio.o
  CC    audio/ossaudio.o
  CC    audio/wavcapture.o
  CC    backends/rng.o
  CC    backends/rng-egd.o
  CC    backends/rng-random.o
  CC    backends/msmouse.o
  CC    backends/testdev.o
  CC    backends/tpm.o
  CC    backends/hostmem.o
  CC    backends/hostmem-ram.o
  CC    backends/hostmem-file.o
  CC    block/stream.o
  CC    block/backup.o
  CC    disas/arm.o
  CC    disas/i386.o
  CC    fsdev/qemu-fsdev-dummy.o
  CC    fsdev/qemu-fsdev-opts.o
  CC    hw/acpi/core.o
  CC    hw/acpi/piix4.o
  CC    hw/acpi/pcihp.o
  CC    hw/acpi/ich9.o
  CC    hw/acpi/tco.o
  CC    hw/acpi/cpu_hotplug.o
  CC    hw/acpi/memory_hotplug.o
  CC    hw/acpi/memory_hotplug_acpi_table.o
  CC    hw/acpi/cpu.o
  CC    hw/acpi/acpi_interface.o
  CC    hw/acpi/bios-linker-loader.o
  CC    hw/acpi/aml-build.o
  CC    hw/acpi/ipmi.o
  CC    hw/audio/sb16.o
  CC    hw/audio/es1370.o
  CC    hw/audio/ac97.o
  CC    hw/audio/fmopl.o
  CC    hw/audio/adlib.o
  CC    hw/audio/gus.o
  CC    hw/audio/gusemu_hal.o
  CC    hw/audio/gusemu_mixer.o
  CC    hw/audio/cs4231a.o
  CC    hw/audio/intel-hda.o
  CC    hw/audio/hda-codec.o
  CC    hw/audio/pcspk.o
  CC    hw/audio/wm8750.o
  CC    hw/audio/pl041.o
  CC    hw/audio/lm4549.o
  CC    hw/audio/marvell_88w8618.o
  CC    hw/block/block.o
  CC    hw/block/cdrom.o
  CC    hw/block/hd-geometry.o
  CC    hw/block/fdc.o
  CC    hw/block/m25p80.o
  CC    hw/block/nand.o
  CC    hw/block/pflash_cfi01.o
  CC    hw/block/pflash_cfi02.o
  CC    hw/block/ecc.o
  CC    hw/block/onenand.o
  CC    hw/block/nvme.o
  CC    hw/bt/core.o
  CC    hw/bt/l2cap.o
  CC    hw/bt/sdp.o
  CC    hw/bt/hci.o
  CC    hw/bt/hid.o
  CC    hw/bt/hci-csr.o
  CC    hw/char/ipoctal232.o
  CC    hw/char/parallel.o
  CC    hw/char/pl011.o
  CC    hw/char/serial.o
  CC    hw/char/serial-isa.o
  CC    hw/char/serial-pci.o
  CC    hw/char/cadence_uart.o
  CC    hw/char/virtio-console.o
  CC    hw/char/debugcon.o
  CC    hw/char/imx_serial.o
  CC    hw/core/qdev.o
  CC    hw/core/qdev-properties.o
  CC    hw/core/bus.o
  CC    hw/core/fw-path-provider.o
  CC    hw/core/irq.o
  CC    hw/core/hotplug.o
  CC    hw/core/ptimer.o
  CC    hw/core/sysbus.o
  CC    hw/core/machine.o
  CC    hw/core/null-machine.o
  CC    hw/core/loader.o
  CC    hw/core/qdev-properties-system.o
  CC    hw/core/register.o
  CC    hw/core/platform-bus.o
  CC    hw/display/ads7846.o
  CC    hw/display/cirrus_vga.o
  CC    hw/display/pl110.o
  CC    hw/display/ssd0303.o
  CC    hw/display/ssd0323.o
  CC    hw/display/vga-pci.o
  CC    hw/display/vga-isa.o
  CC    hw/display/vmware_vga.o
  CC    hw/display/blizzard.o
  CC    hw/display/exynos4210_fimd.o
  CC    hw/display/framebuffer.o
  CC    hw/display/tc6393xb.o
  CC    hw/dma/pl080.o
  CC    hw/dma/pl330.o
  CC    hw/dma/i8257.o
  CC    hw/dma/xlnx-zynq-devcfg.o
  CC    hw/gpio/max7310.o
  CC    hw/gpio/zaurus.o
  CC    hw/gpio/pl061.o
  CC    hw/gpio/gpio_key.o
  CC    hw/i2c/core.o
  CC    hw/i2c/smbus.o
  CC    hw/i2c/smbus_eeprom.o
  CC    hw/i2c/i2c-ddc.o
  CC    hw/i2c/versatile_i2c.o
  CC    hw/i2c/smbus_ich9.o
  CC    hw/i2c/pm_smbus.o
  CC    hw/i2c/bitbang_i2c.o
  CC    hw/i2c/exynos4210_i2c.o
  CC    hw/i2c/imx_i2c.o
  CC    hw/i2c/aspeed_i2c.o
  CC    hw/ide/core.o
  CC    hw/ide/atapi.o
  CC    hw/ide/qdev.o
  CC    hw/ide/pci.o
  CC    hw/ide/isa.o
  CC    hw/ide/piix.o
  CC    hw/ide/microdrive.o
  CC    hw/ide/ahci.o
  CC    hw/ide/ich.o
  CC    hw/input/hid.o
  CC    hw/input/lm832x.o
  CC    hw/input/pckbd.o
  CC    hw/input/pl050.o
  CC    hw/input/ps2.o
  CC    hw/input/stellaris_input.o
  CC    hw/input/tsc2005.o
  CC    hw/input/vmmouse.o
  CC    hw/input/virtio-input.o
  CC    hw/input/virtio-input-hid.o
  CC    hw/input/virtio-input-host.o
  CC    hw/intc/i8259_common.o
  CC    hw/intc/i8259.o
  CC    hw/intc/pl190.o
  CC    hw/intc/imx_avic.o
  CC    hw/intc/realview_gic.o
  CC    hw/intc/ioapic_common.o
  CC    hw/intc/arm_gic_common.o
  CC    hw/intc/arm_gic.o
  CC    hw/intc/arm_gicv2m.o
  CC    hw/intc/arm_gicv3_common.o
  CC    hw/intc/arm_gicv3.o
  CC    hw/intc/arm_gicv3_dist.o
  CC    hw/intc/arm_gicv3_redist.o
  CC    hw/ipack/ipack.o
  CC    hw/ipack/tpci200.o
  CC    hw/ipmi/ipmi.o
  CC    hw/ipmi/ipmi_bmc_sim.o
  CC    hw/ipmi/ipmi_bmc_extern.o
  CC    hw/ipmi/isa_ipmi_kcs.o
  CC    hw/ipmi/isa_ipmi_bt.o
  CC    hw/isa/isa-bus.o
  CC    hw/isa/apm.o
  CC    hw/mem/pc-dimm.o
  CC    hw/mem/nvdimm.o
  CC    hw/misc/applesmc.o
  CC    hw/misc/max111x.o
  CC    hw/misc/tmp105.o
  CC    hw/misc/debugexit.o
  CC    hw/misc/sga.o
  CC    hw/misc/pc-testdev.o
  CC    hw/misc/pci-testdev.o
  CC    hw/misc/arm_l2x0.o
  CC    hw/misc/arm_integrator_debug.o
  CC    hw/misc/a9scu.o
  CC    hw/misc/arm11scu.o
  CC    hw/net/ne2000.o
  CC    hw/net/eepro100.o
  CC    hw/net/pcnet-pci.o
  CC    hw/net/pcnet.o
  CC    hw/net/e1000.o
  CC    hw/net/e1000x_common.o
  CC    hw/net/net_tx_pkt.o
  CC    hw/net/net_rx_pkt.o
  CC    hw/net/e1000e.o
  CC    hw/net/e1000e_core.o
  CC    hw/net/rtl8139.o
  CC    hw/net/vmxnet3.o
  CC    hw/net/smc91c111.o
  CC    hw/net/lan9118.o
  CC    hw/net/ne2000-isa.o
  CC    hw/net/xgmac.o
  CC    hw/net/allwinner_emac.o
  CC    hw/net/imx_fec.o
  CC    hw/net/cadence_gem.o
  CC    hw/net/stellaris_enet.o
  CC    hw/net/rocker/rocker.o
  CC    hw/net/rocker/rocker_fp.o
  CC    hw/net/rocker/rocker_desc.o
  CC    hw/net/rocker/rocker_world.o
  CC    hw/net/rocker/rocker_of_dpa.o
  CC    hw/nvram/eeprom93xx.o
  CC    hw/nvram/fw_cfg.o
  CC    hw/pci-bridge/pci_bridge_dev.o
  CC    hw/pci-bridge/pci_expander_bridge.o
  CC    hw/pci-bridge/xio3130_upstream.o
  CC    hw/pci-bridge/xio3130_downstream.o
  CC    hw/pci-bridge/ioh3420.o
  CC    hw/pci-bridge/i82801b11.o
  CC    hw/pci-host/pam.o
  CC    hw/pci-host/versatile.o
/tmp/qemu-test/src/hw/nvram/fw_cfg.c: In function ‘fw_cfg_dma_transfer’:
/tmp/qemu-test/src/hw/nvram/fw_cfg.c:330: warning: ‘read’ may be used uninitialized in this function
  CC    hw/pci-host/piix.o
  CC    hw/pci-host/q35.o
  CC    hw/pci-host/gpex.o
  CC    hw/pci/pci.o
  CC    hw/pci/pci_bridge.o
  CC    hw/pci/msix.o
  CC    hw/pci/msi.o
  CC    hw/pci/shpc.o
  CC    hw/pci/slotid_cap.o
  CC    hw/pci/pci_host.o
  CC    hw/pci/pcie_host.o
  CC    hw/pci/pcie.o
  CC    hw/pci/pcie_aer.o
  CC    hw/pci/pcie_port.o
  CC    hw/pci/pci-stub.o
  CC    hw/pcmcia/pcmcia.o
  CC    hw/scsi/scsi-disk.o
  CC    hw/scsi/scsi-generic.o
  CC    hw/scsi/scsi-bus.o
  CC    hw/scsi/lsi53c895a.o
  CC    hw/scsi/mptsas.o
  CC    hw/scsi/mptconfig.o
  CC    hw/scsi/mptendian.o
  CC    hw/scsi/megasas.o
  CC    hw/scsi/vmw_pvscsi.o
  CC    hw/scsi/esp.o
  CC    hw/scsi/esp-pci.o
  CC    hw/sd/pl181.o
  CC    hw/sd/ssi-sd.o
  CC    hw/sd/sd.o
  CC    hw/sd/core.o
  CC    hw/sd/sdhci.o
  CC    hw/smbios/smbios.o
  CC    hw/smbios/smbios_type_38.o
  CC    hw/ssi/pl022.o
  CC    hw/ssi/ssi.o
  CC    hw/ssi/xilinx_spips.o
  CC    hw/ssi/aspeed_smc.o
  CC    hw/timer/arm_timer.o
  CC    hw/timer/arm_mptimer.o
  CC    hw/timer/a9gtimer.o
  CC    hw/timer/cadence_ttc.o
  CC    hw/timer/ds1338.o
  CC    hw/timer/hpet.o
  CC    hw/timer/i8254_common.o
  CC    hw/timer/i8254.o
  CC    hw/timer/pl031.o
  CC    hw/timer/twl92230.o
  CC    hw/timer/imx_epit.o
  CC    hw/timer/imx_gpt.o
  CC    hw/timer/stm32f2xx_timer.o
  CC    hw/timer/aspeed_timer.o
  CC    hw/tpm/tpm_tis.o
  CC    hw/tpm/tpm_passthrough.o
  CC    hw/tpm/tpm_util.o
  CC    hw/usb/core.o
  CC    hw/usb/combined-packet.o
  CC    hw/usb/bus.o
  CC    hw/usb/libhw.o
  CC    hw/usb/desc.o
  CC    hw/usb/desc-msos.o
  CC    hw/usb/hcd-uhci.o
  CC    hw/usb/hcd-ohci.o
  CC    hw/usb/hcd-ehci.o
  CC    hw/usb/hcd-ehci-pci.o
  CC    hw/usb/hcd-ehci-sysbus.o
  CC    hw/usb/hcd-xhci.o
  CC    hw/usb/hcd-musb.o
  CC    hw/usb/dev-hub.o
  CC    hw/usb/dev-hid.o
  CC    hw/usb/dev-wacom.o
  CC    hw/usb/dev-storage.o
  CC    hw/usb/dev-uas.o
  CC    hw/usb/dev-audio.o
  CC    hw/usb/dev-serial.o
  CC    hw/usb/dev-network.o
  CC    hw/usb/dev-bluetooth.o
  CC    hw/usb/dev-smartcard-reader.o
  CC    hw/usb/dev-mtp.o
  CC    hw/usb/host-stub.o
  CC    hw/virtio/virtio-rng.o
  CC    hw/virtio/virtio-pci.o
  CC    hw/virtio/virtio-bus.o
  CC    hw/virtio/virtio-mmio.o
  CC    hw/watchdog/watchdog.o
  CC    hw/watchdog/wdt_i6300esb.o
  CC    hw/watchdog/wdt_ib700.o
  CC    migration/migration.o
  CC    migration/socket.o
  CC    migration/fd.o
  CC    migration/exec.o
  CC    migration/tls.o
  CC    migration/vmstate.o
  CC    migration/qemu-file.o
  CC    migration/qemu-file-channel.o
  CC    migration/xbzrle.o
  CC    migration/postcopy-ram.o
  CC    migration/qjson.o
  CC    migration/block.o
  CC    net/net.o
  CC    net/queue.o
  CC    net/checksum.o
  CC    net/util.o
  CC    net/hub.o
  CC    net/socket.o
  CC    net/dump.o
  CC    net/eth.o
  CC    net/l2tpv3.o
  CC    net/tap.o
  CC    net/vhost-user.o
  CC    net/tap-linux.o
  CC    net/slirp.o
  CC    net/filter.o
  CC    net/filter-buffer.o
  CC    net/filter-mirror.o
  CC    qom/cpu.o
  CC    replay/replay.o
  CC    replay/replay-internal.o
  CC    replay/replay-events.o
  CC    replay/replay-time.o
  CC    replay/replay-input.o
  CC    replay/replay-char.o
  CC    slirp/cksum.o
  CC    slirp/if.o
/tmp/qemu-test/src/replay/replay-internal.c: In function ‘replay_put_array’:
/tmp/qemu-test/src/replay/replay-internal.c:68: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
  CC    slirp/ip_icmp.o
  CC    slirp/ip6_icmp.o
  CC    slirp/ip6_input.o
  CC    slirp/ip6_output.o
  CC    slirp/ip_input.o
  CC    slirp/ip_output.o
  CC    slirp/dnssearch.o
  CC    slirp/dhcpv6.o
  CC    slirp/slirp.o
  CC    slirp/mbuf.o
  CC    slirp/misc.o
  CC    slirp/sbuf.o
  CC    slirp/socket.o
  CC    slirp/tcp_input.o
  CC    slirp/tcp_output.o
  CC    slirp/tcp_subr.o
  CC    slirp/tcp_timer.o
  CC    slirp/udp.o
  CC    slirp/udp6.o
  CC    slirp/bootp.o
/tmp/qemu-test/src/slirp/tcp_input.c: In function ‘tcp_input’:
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_p’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_len’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_tos’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_id’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_off’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_ttl’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_sum’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_src.s_addr’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_dst.s_addr’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:220: warning: ‘save_ip6.ip_nh’ may be used uninitialized in this function
  CC    slirp/tftp.o
  CC    slirp/arp_table.o
  CC    slirp/ndp_table.o
  CC    ui/keymaps.o
  CC    ui/console.o
  CC    ui/cursor.o
  CC    ui/qemu-pixman.o
  CC    ui/input.o
  CC    ui/input-keymap.o
  CC    ui/input-legacy.o
  CC    ui/input-linux.o
  CC    ui/sdl.o
  CC    ui/sdl_zoom.o
  CC    ui/x_keymap.o
  CC    ui/vnc.o
  CC    ui/vnc-enc-zlib.o
  CC    ui/vnc-enc-hextile.o
  CC    ui/vnc-enc-tight.o
  CC    ui/vnc-palette.o
  CC    ui/vnc-enc-zrle.o
  CC    ui/vnc-auth-vencrypt.o
  CC    ui/vnc-ws.o
  CC    ui/vnc-jobs.o
  LINK  tests/qemu-iotests/socket_scm_helper
  CC    qga/commands.o
  CC    qga/guest-agent-command-state.o
  CC    qga/main.o
  CC    qga/commands-posix.o
  CC    qga/channel-posix.o
  CC    qga/qapi-generated/qga-qapi-types.o
  CC    qga/qapi-generated/qga-qapi-visit.o
  CC    qga/qapi-generated/qga-qmp-marshal.o
  CC    qmp-introspect.o
  CC    qapi-types.o
  CC    qapi-visit.o
  CC    qapi-event.o
  AR    libqemustub.a
  CC    qemu-img.o
  CC    qmp-marshal.o
  CC    trace/generated-events.o
  AS    optionrom/multiboot.o
  AS    optionrom/linuxboot.o
  CC    optionrom/linuxboot_dma.o
  AS    optionrom/kvmvapic.o
cc: unrecognized option '-no-integrated-as'
cc: unrecognized option '-no-integrated-as'
  Building optionrom/linuxboot_dma.img
  Building optionrom/linuxboot_dma.raw
  Building optionrom/multiboot.img
  Building optionrom/linuxboot.img
  Building optionrom/kvmvapic.img
  Building optionrom/multiboot.raw
  Building optionrom/linuxboot.raw
  AR    libqemuutil.a
  Building optionrom/kvmvapic.raw
  Signing optionrom/linuxboot_dma.bin
  Signing optionrom/multiboot.bin
  Signing optionrom/linuxboot.bin
  Signing optionrom/kvmvapic.bin
  LINK  qemu-ga
  LINK  ivshmem-client
  LINK  ivshmem-server
  LINK  qemu-nbd
  LINK  qemu-img
  LINK  qemu-io
  LINK  qemu-bridge-helper
  GEN   x86_64-softmmu/hmp-commands.h
  GEN   x86_64-softmmu/hmp-commands-info.h
  GEN   x86_64-softmmu/qmp-commands-old.h
  GEN   x86_64-softmmu/config-target.h
  GEN   aarch64-softmmu/hmp-commands.h
  GEN   aarch64-softmmu/hmp-commands-info.h
  GEN   aarch64-softmmu/qmp-commands-old.h
  GEN   aarch64-softmmu/config-target.h
  CC    x86_64-softmmu/translate-all.o
  CC    x86_64-softmmu/exec.o
  CC    x86_64-softmmu/cpu-exec.o
  CC    x86_64-softmmu/translate-common.o
  CC    x86_64-softmmu/cpu-exec-common.o
  CC    x86_64-softmmu/tcg/tcg.o
  CC    x86_64-softmmu/tcg/tcg-op.o
  CC    x86_64-softmmu/tcg/optimize.o
  CC    x86_64-softmmu/tcg/tcg-common.o
  CC    x86_64-softmmu/fpu/softfloat.o
  CC    x86_64-softmmu/disas.o
  CC    x86_64-softmmu/arch_init.o
  CC    x86_64-softmmu/cpus.o
  CC    x86_64-softmmu/monitor.o
  CC    x86_64-softmmu/gdbstub.o
  CC    x86_64-softmmu/balloon.o
  CC    x86_64-softmmu/ioport.o
  CC    x86_64-softmmu/numa.o
  CC    x86_64-softmmu/qtest.o
  CC    x86_64-softmmu/bootdevice.o
  CC    x86_64-softmmu/kvm-all.o
  CC    x86_64-softmmu/memory.o
  CC    x86_64-softmmu/cputlb.o
  CC    x86_64-softmmu/memory_mapping.o
  CC    x86_64-softmmu/dump.o
  CC    x86_64-softmmu/migration/ram.o
  CC    x86_64-softmmu/migration/savevm.o
  CC    x86_64-softmmu/xen-common-stub.o
  CC    aarch64-softmmu/exec.o
  CC    aarch64-softmmu/translate-all.o
  CC    aarch64-softmmu/cpu-exec.o
  CC    aarch64-softmmu/translate-common.o
  CC    x86_64-softmmu/xen-hvm-stub.o
  CC    aarch64-softmmu/cpu-exec-common.o
  CC    x86_64-softmmu/hw/acpi/nvdimm.o
  CC    x86_64-softmmu/hw/block/virtio-blk.o
  CC    aarch64-softmmu/tcg/tcg.o
  CC    x86_64-softmmu/hw/block/dataplane/virtio-blk.o
  CC    x86_64-softmmu/hw/char/virtio-serial-bus.o
  CC    aarch64-softmmu/tcg/tcg-op.o
  CC    x86_64-softmmu/hw/core/nmi.o
  CC    x86_64-softmmu/hw/cpu/core.o
  CC    aarch64-softmmu/tcg/optimize.o
  CC    aarch64-softmmu/tcg/tcg-common.o
  CC    x86_64-softmmu/hw/display/vga.o
  CC    aarch64-softmmu/fpu/softfloat.o
  CC    aarch64-softmmu/disas.o
  GEN   aarch64-softmmu/gdbstub-xml.c
  CC    x86_64-softmmu/hw/display/virtio-gpu.o
  CC    x86_64-softmmu/hw/display/virtio-gpu-3d.o
  CC    aarch64-softmmu/kvm-stub.o
  CC    aarch64-softmmu/arch_init.o
  CC    aarch64-softmmu/cpus.o
  CC    aarch64-softmmu/monitor.o
  CC    x86_64-softmmu/hw/display/virtio-gpu-pci.o
  CC    aarch64-softmmu/gdbstub.o
  CC    aarch64-softmmu/balloon.o
  CC    aarch64-softmmu/ioport.o
  CC    aarch64-softmmu/numa.o
  CC    x86_64-softmmu/hw/display/virtio-vga.o
  CC    x86_64-softmmu/hw/intc/apic.o
  CC    x86_64-softmmu/hw/intc/apic_common.o
  CC    x86_64-softmmu/hw/intc/ioapic.o
  CC    x86_64-softmmu/hw/isa/lpc_ich9.o
  CC    x86_64-softmmu/hw/misc/vmport.o
  CC    x86_64-softmmu/hw/misc/ivshmem.o
  CC    x86_64-softmmu/hw/misc/pvpanic.o
  CC    x86_64-softmmu/hw/misc/edu.o
  CC    x86_64-softmmu/hw/misc/hyperv_testdev.o
  CC    x86_64-softmmu/hw/net/virtio-net.o
  CC    x86_64-softmmu/hw/net/vhost_net.o
  CC    aarch64-softmmu/qtest.o
  CC    x86_64-softmmu/hw/scsi/virtio-scsi.o
  CC    x86_64-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC    x86_64-softmmu/hw/scsi/vhost-scsi.o
  CC    x86_64-softmmu/hw/timer/mc146818rtc.o
  CC    x86_64-softmmu/hw/vfio/common.o
  CC    x86_64-softmmu/hw/vfio/pci.o
  CC    aarch64-softmmu/bootdevice.o
  CC    x86_64-softmmu/hw/vfio/pci-quirks.o
  CC    x86_64-softmmu/hw/vfio/platform.o
  CC    x86_64-softmmu/hw/vfio/calxeda-xgmac.o
  CC    x86_64-softmmu/hw/vfio/amd-xgbe.o
  CC    x86_64-softmmu/hw/vfio/spapr.o
  CC    aarch64-softmmu/memory.o
  CC    x86_64-softmmu/hw/virtio/virtio.o
  CC    x86_64-softmmu/hw/virtio/virtio-balloon.o
  CC    aarch64-softmmu/cputlb.o
  CC    x86_64-softmmu/hw/virtio/vhost.o
  CC    x86_64-softmmu/hw/virtio/vhost-backend.o
  CC    x86_64-softmmu/hw/virtio/vhost-user.o
  CC    x86_64-softmmu/hw/i386/multiboot.o
  CC    aarch64-softmmu/memory_mapping.o
  CC    x86_64-softmmu/hw/i386/pc.o
  CC    aarch64-softmmu/dump.o
  CC    x86_64-softmmu/hw/i386/pc_piix.o
  CC    aarch64-softmmu/migration/ram.o
  CC    aarch64-softmmu/migration/savevm.o
  CC    x86_64-softmmu/hw/i386/pc_q35.o
  CC    x86_64-softmmu/hw/i386/pc_sysfw.o
  CC    aarch64-softmmu/xen-common-stub.o
  CC    aarch64-softmmu/xen-hvm-stub.o
/tmp/qemu-test/src/hw/i386/pc_piix.c: In function ‘igd_passthrough_isa_bridge_create’:
/tmp/qemu-test/src/hw/i386/pc_piix.c:1037: warning: ‘pch_rev_id’ may be used uninitialized in this function
  CC    x86_64-softmmu/hw/i386/x86-iommu.o
  CC    x86_64-softmmu/hw/i386/intel_iommu.o
  CC    aarch64-softmmu/hw/block/virtio-blk.o
  CC    aarch64-softmmu/hw/block/dataplane/virtio-blk.o
  CC    x86_64-softmmu/hw/i386/kvmvapic.o
  CC    aarch64-softmmu/hw/char/exynos4210_uart.o
  CC    aarch64-softmmu/hw/char/omap_uart.o
  CC    aarch64-softmmu/hw/char/digic-uart.o
  CC    aarch64-softmmu/hw/char/stm32f2xx_usart.o
  CC    x86_64-softmmu/hw/i386/acpi-build.o
  CC    aarch64-softmmu/hw/char/bcm2835_aux.o
  CC    aarch64-softmmu/hw/char/virtio-serial-bus.o
  CC    x86_64-softmmu/hw/i386/pci-assign-load-rom.o
  CC    aarch64-softmmu/hw/core/nmi.o
  CC    aarch64-softmmu/hw/cpu/arm11mpcore.o
  CC    x86_64-softmmu/hw/i386/kvm/clock.o
  CC    aarch64-softmmu/hw/cpu/realview_mpcore.o
  CC    aarch64-softmmu/hw/cpu/a9mpcore.o
  CC    x86_64-softmmu/hw/i386/kvm/apic.o
  CC    aarch64-softmmu/hw/cpu/a15mpcore.o
  CC    x86_64-softmmu/hw/i386/kvm/i8259.o
  CC    aarch64-softmmu/hw/cpu/core.o
  CC    aarch64-softmmu/hw/display/omap_dss.o
/tmp/qemu-test/src/hw/i386/acpi-build.c: In function ‘build_append_pci_bus_devices’:
/tmp/qemu-test/src/hw/i386/acpi-build.c:471: warning: ‘notify_method’ may be used uninitialized in this function
  CC    x86_64-softmmu/hw/i386/kvm/ioapic.o
  CC    aarch64-softmmu/hw/display/omap_lcdc.o
  CC    x86_64-softmmu/hw/i386/kvm/i8254.o
  CC    x86_64-softmmu/hw/i386/kvm/pci-assign.o
  CC    x86_64-softmmu/target-i386/translate.o
  CC    aarch64-softmmu/hw/display/pxa2xx_lcd.o
  CC    aarch64-softmmu/hw/display/bcm2835_fb.o
  CC    aarch64-softmmu/hw/display/vga.o
  CC    aarch64-softmmu/hw/display/virtio-gpu.o
  CC    aarch64-softmmu/hw/display/virtio-gpu-3d.o
  CC    aarch64-softmmu/hw/display/virtio-gpu-pci.o
  CC    x86_64-softmmu/target-i386/helper.o
  CC    x86_64-softmmu/target-i386/cpu.o
  CC    x86_64-softmmu/target-i386/bpt_helper.o
  CC    x86_64-softmmu/target-i386/excp_helper.o
  CC    aarch64-softmmu/hw/display/dpcd.o
  CC    aarch64-softmmu/hw/display/xlnx_dp.o
  CC    x86_64-softmmu/target-i386/fpu_helper.o
  CC    aarch64-softmmu/hw/dma/xlnx_dpdma.o
  CC    x86_64-softmmu/target-i386/cc_helper.o
  CC    aarch64-softmmu/hw/dma/omap_dma.o
  CC    x86_64-softmmu/target-i386/int_helper.o
  CC    x86_64-softmmu/target-i386/svm_helper.o
  CC    aarch64-softmmu/hw/dma/soc_dma.o
  CC    x86_64-softmmu/target-i386/smm_helper.o
  CC    x86_64-softmmu/target-i386/misc_helper.o
  CC    aarch64-softmmu/hw/dma/pxa2xx_dma.o
  CC    aarch64-softmmu/hw/dma/bcm2835_dma.o
  CC    x86_64-softmmu/target-i386/mem_helper.o
  CC    aarch64-softmmu/hw/gpio/omap_gpio.o
  CC    aarch64-softmmu/hw/gpio/imx_gpio.o
  CC    x86_64-softmmu/target-i386/seg_helper.o
  CC    aarch64-softmmu/hw/i2c/omap_i2c.o
  CC    x86_64-softmmu/target-i386/mpx_helper.o
  CC    aarch64-softmmu/hw/input/pxa2xx_keypad.o
  CC    x86_64-softmmu/target-i386/gdbstub.o
  CC    aarch64-softmmu/hw/input/tsc210x.o
  CC    x86_64-softmmu/target-i386/machine.o
  CC    x86_64-softmmu/target-i386/arch_memory_mapping.o
  CC    x86_64-softmmu/target-i386/arch_dump.o
  CC    x86_64-softmmu/target-i386/monitor.o
  CC    aarch64-softmmu/hw/intc/armv7m_nvic.o
  CC    x86_64-softmmu/target-i386/kvm.o
  CC    x86_64-softmmu/target-i386/hyperv.o
  CC    aarch64-softmmu/hw/intc/exynos4210_gic.o
  CC    aarch64-softmmu/hw/intc/exynos4210_combiner.o
  GEN   trace/generated-helpers.c
  CC    aarch64-softmmu/hw/intc/omap_intc.o
  CC    x86_64-softmmu/trace/control-target.o
  CC    aarch64-softmmu/hw/intc/bcm2835_ic.o
  CC    aarch64-softmmu/hw/intc/bcm2836_control.o
  CC    aarch64-softmmu/hw/intc/allwinner-a10-pic.o
  CC    aarch64-softmmu/hw/intc/aspeed_vic.o
  CC    aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
  CC    aarch64-softmmu/hw/misc/ivshmem.o
  CC    aarch64-softmmu/hw/misc/arm_sysctl.o
  CC    aarch64-softmmu/hw/misc/cbus.o
  CC    aarch64-softmmu/hw/misc/exynos4210_pmu.o
  CC    aarch64-softmmu/hw/misc/imx_ccm.o
  CC    aarch64-softmmu/hw/misc/imx31_ccm.o
  CC    aarch64-softmmu/hw/misc/imx25_ccm.o
  CC    aarch64-softmmu/hw/misc/imx6_ccm.o
  CC    aarch64-softmmu/hw/misc/imx6_src.o
  CC    aarch64-softmmu/hw/misc/mst_fpga.o
  CC    aarch64-softmmu/hw/misc/omap_clk.o
  CC    aarch64-softmmu/hw/misc/omap_gpmc.o
  CC    aarch64-softmmu/hw/misc/omap_l4.o
  CC    aarch64-softmmu/hw/misc/omap_sdrc.o
  CC    aarch64-softmmu/hw/misc/omap_tap.o
  CC    x86_64-softmmu/trace/generated-helpers.o
  CC    aarch64-softmmu/hw/misc/bcm2835_mbox.o
  CC    aarch64-softmmu/hw/misc/bcm2835_property.o
  CC    aarch64-softmmu/hw/misc/zynq_slcr.o
  CC    aarch64-softmmu/hw/misc/zynq-xadc.o
  CC    aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
  CC    aarch64-softmmu/hw/misc/edu.o
  CC    aarch64-softmmu/hw/misc/auxbus.o
  CC    aarch64-softmmu/hw/misc/aspeed_scu.o
  CC    aarch64-softmmu/hw/net/virtio-net.o
  CC    aarch64-softmmu/hw/net/vhost_net.o
  CC    aarch64-softmmu/hw/pcmcia/pxa2xx.o
  CC    aarch64-softmmu/hw/scsi/virtio-scsi.o
  CC    aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
  CC    aarch64-softmmu/hw/scsi/vhost-scsi.o
  CC    aarch64-softmmu/hw/sd/omap_mmc.o
  CC    aarch64-softmmu/hw/sd/pxa2xx_mmci.o
  CC    aarch64-softmmu/hw/ssi/omap_spi.o
  CC    aarch64-softmmu/hw/ssi/imx_spi.o
  CC    aarch64-softmmu/hw/timer/exynos4210_mct.o
  CC    aarch64-softmmu/hw/timer/exynos4210_pwm.o
  CC    aarch64-softmmu/hw/timer/exynos4210_rtc.o
  CC    aarch64-softmmu/hw/timer/omap_gptimer.o
  CC    aarch64-softmmu/hw/timer/omap_synctimer.o
  CC    aarch64-softmmu/hw/timer/pxa2xx_timer.o
  CC    aarch64-softmmu/hw/timer/digic-timer.o
  CC    aarch64-softmmu/hw/timer/allwinner-a10-pit.o
  CC    aarch64-softmmu/hw/usb/tusb6010.o
  CC    aarch64-softmmu/hw/vfio/common.o
  CC    aarch64-softmmu/hw/vfio/pci.o
  CC    aarch64-softmmu/hw/vfio/pci-quirks.o
  CC    aarch64-softmmu/hw/vfio/platform.o
  LINK  x86_64-softmmu/qemu-system-x86_64
  CC    aarch64-softmmu/hw/vfio/calxeda-xgmac.o
  CC    aarch64-softmmu/hw/vfio/amd-xgbe.o
  CC    aarch64-softmmu/hw/vfio/spapr.o
  CC    aarch64-softmmu/hw/virtio/virtio.o
  CC    aarch64-softmmu/hw/virtio/virtio-balloon.o
  CC    aarch64-softmmu/hw/virtio/vhost.o
  CC    aarch64-softmmu/hw/virtio/vhost-backend.o
  CC    aarch64-softmmu/hw/virtio/vhost-user.o
  CC    aarch64-softmmu/hw/arm/boot.o
  CC    aarch64-softmmu/hw/arm/collie.o
  CC    aarch64-softmmu/hw/arm/exynos4_boards.o
  CC    aarch64-softmmu/hw/arm/gumstix.o
  CC    aarch64-softmmu/hw/arm/highbank.o
  CC    aarch64-softmmu/hw/arm/digic_boards.o
  CC    aarch64-softmmu/hw/arm/integratorcp.o
  CC    aarch64-softmmu/hw/arm/mainstone.o
  CC    aarch64-softmmu/hw/arm/musicpal.o
  CC    aarch64-softmmu/hw/arm/nseries.o
  CC    aarch64-softmmu/hw/arm/omap_sx1.o
  CC    aarch64-softmmu/hw/arm/palm.o
  CC    aarch64-softmmu/hw/arm/realview.o
  CC    aarch64-softmmu/hw/arm/spitz.o
  CC    aarch64-softmmu/hw/arm/stellaris.o
  CC    aarch64-softmmu/hw/arm/tosa.o
  CC    aarch64-softmmu/hw/arm/versatilepb.o
  CC    aarch64-softmmu/hw/arm/vexpress.o
  CC    aarch64-softmmu/hw/arm/virt.o
  CC    aarch64-softmmu/hw/arm/xilinx_zynq.o
  CC    aarch64-softmmu/hw/arm/z2.o
  CC    aarch64-softmmu/hw/arm/virt-acpi-build.o
  CC    aarch64-softmmu/hw/arm/netduino2.o
  CC    aarch64-softmmu/hw/arm/sysbus-fdt.o
  CC    aarch64-softmmu/hw/arm/armv7m.o
  CC    aarch64-softmmu/hw/arm/exynos4210.o
  CC    aarch64-softmmu/hw/arm/pxa2xx.o
  CC    aarch64-softmmu/hw/arm/pxa2xx_gpio.o
  CC    aarch64-softmmu/hw/arm/pxa2xx_pic.o
  CC    aarch64-softmmu/hw/arm/digic.o
  CC    aarch64-softmmu/hw/arm/omap1.o
  CC    aarch64-softmmu/hw/arm/omap2.o
  CC    aarch64-softmmu/hw/arm/strongarm.o
  CC    aarch64-softmmu/hw/arm/allwinner-a10.o
  CC    aarch64-softmmu/hw/arm/cubieboard.o
  CC    aarch64-softmmu/hw/arm/bcm2835_peripherals.o
  CC    aarch64-softmmu/hw/arm/bcm2836.o
  CC    aarch64-softmmu/hw/arm/raspi.o
  CC    aarch64-softmmu/hw/arm/stm32f205_soc.o
  CC    aarch64-softmmu/hw/arm/xlnx-zynqmp.o
  CC    aarch64-softmmu/hw/arm/xlnx-ep108.o
  CC    aarch64-softmmu/hw/arm/fsl-imx25.o
  CC    aarch64-softmmu/hw/arm/imx25_pdk.o
  CC    aarch64-softmmu/hw/arm/fsl-imx31.o
  CC    aarch64-softmmu/hw/arm/kzm.o
  CC    aarch64-softmmu/hw/arm/fsl-imx6.o
  CC    aarch64-softmmu/hw/arm/sabrelite.o
  CC    aarch64-softmmu/hw/arm/ast2400.o
  CC    aarch64-softmmu/hw/arm/palmetto-bmc.o
  CC    aarch64-softmmu/target-arm/arm-semi.o
  CC    aarch64-softmmu/target-arm/machine.o
  CC    aarch64-softmmu/target-arm/psci.o
  CC    aarch64-softmmu/target-arm/arch_dump.o
  CC    aarch64-softmmu/target-arm/monitor.o
  CC    aarch64-softmmu/target-arm/kvm-stub.o
  CC    aarch64-softmmu/target-arm/translate.o
  CC    aarch64-softmmu/target-arm/op_helper.o
  CC    aarch64-softmmu/target-arm/helper.o
  CC    aarch64-softmmu/target-arm/cpu.o
  CC    aarch64-softmmu/target-arm/neon_helper.o
  CC    aarch64-softmmu/target-arm/iwmmxt_helper.o
  CC    aarch64-softmmu/target-arm/gdbstub.o
  CC    aarch64-softmmu/target-arm/cpu64.o
  CC    aarch64-softmmu/target-arm/translate-a64.o
  CC    aarch64-softmmu/target-arm/helper-a64.o
/tmp/qemu-test/src/target-arm/translate-a64.c: In function ‘handle_shri_with_rndacc’:
/tmp/qemu-test/src/target-arm/translate-a64.c:6308: warning: ‘tcg_src_hi’ may be used uninitialized in this function
/tmp/qemu-test/src/target-arm/translate-a64.c: In function ‘disas_simd_scalar_two_reg_misc’:
/tmp/qemu-test/src/target-arm/translate-a64.c:8035: warning: ‘rmode’ may be used uninitialized in this function
  CC    aarch64-softmmu/target-arm/gdbstub64.o
  CC    aarch64-softmmu/target-arm/crypto_helper.o
  CC    aarch64-softmmu/target-arm/arm-powerctl.o
  GEN   trace/generated-helpers.c
  CC    aarch64-softmmu/trace/control-target.o
  CC    aarch64-softmmu/gdbstub-xml.o
  CC    aarch64-softmmu/trace/generated-helpers.o
  LINK  aarch64-softmmu/qemu-system-aarch64
  TEST  tests/qapi-schema/alternate-any.out
  TEST  tests/qapi-schema/alternate-array.out
  TEST  tests/qapi-schema/alternate-base.out
  TEST  tests/qapi-schema/alternate-clash.out
  TEST  tests/qapi-schema/alternate-conflict-dict.out
  TEST  tests/qapi-schema/alternate-conflict-string.out
  TEST  tests/qapi-schema/alternate-empty.out
  TEST  tests/qapi-schema/alternate-nested.out
  TEST  tests/qapi-schema/alternate-unknown.out
  TEST  tests/qapi-schema/args-alternate.out
  TEST  tests/qapi-schema/args-any.out
  TEST  tests/qapi-schema/args-array-empty.out
  TEST  tests/qapi-schema/args-array-unknown.out
  TEST  tests/qapi-schema/args-bad-boxed.out
  TEST  tests/qapi-schema/args-boxed-anon.out
  TEST  tests/qapi-schema/args-boxed-empty.out
  TEST  tests/qapi-schema/args-boxed-string.out
  TEST  tests/qapi-schema/args-int.out
  TEST  tests/qapi-schema/args-invalid.out
  TEST  tests/qapi-schema/args-member-array-bad.out
  TEST  tests/qapi-schema/args-member-case.out
  TEST  tests/qapi-schema/args-member-unknown.out
  TEST  tests/qapi-schema/args-name-clash.out
  TEST  tests/qapi-schema/args-union.out
  TEST  tests/qapi-schema/args-unknown.out
  TEST  tests/qapi-schema/bad-base.out
  TEST  tests/qapi-schema/bad-data.out
  TEST  tests/qapi-schema/bad-ident.out
  TEST  tests/qapi-schema/bad-type-bool.out
  TEST  tests/qapi-schema/bad-type-dict.out
  TEST  tests/qapi-schema/bad-type-int.out
  TEST  tests/qapi-schema/base-cycle-direct.out
  TEST  tests/qapi-schema/base-cycle-indirect.out
  TEST  tests/qapi-schema/command-int.out
  TEST  tests/qapi-schema/comments.out
  TEST  tests/qapi-schema/double-data.out
  TEST  tests/qapi-schema/double-type.out
  TEST  tests/qapi-schema/duplicate-key.out
  TEST  tests/qapi-schema/empty.out
  TEST  tests/qapi-schema/enum-bad-name.out
  TEST  tests/qapi-schema/enum-bad-prefix.out
  TEST  tests/qapi-schema/enum-clash-member.out
  TEST  tests/qapi-schema/enum-dict-member.out
  TEST  tests/qapi-schema/enum-int-member.out
  TEST  tests/qapi-schema/enum-member-case.out
  TEST  tests/qapi-schema/enum-missing-data.out
  TEST  tests/qapi-schema/enum-wrong-data.out
  TEST  tests/qapi-schema/escape-outside-string.out
  TEST  tests/qapi-schema/escape-too-big.out
  TEST  tests/qapi-schema/escape-too-short.out
  TEST  tests/qapi-schema/event-boxed-empty.out
  TEST  tests/qapi-schema/event-case.out
  TEST  tests/qapi-schema/event-nest-struct.out
  TEST  tests/qapi-schema/flat-union-array-branch.out
  TEST  tests/qapi-schema/flat-union-bad-base.out
  TEST  tests/qapi-schema/flat-union-bad-discriminator.out
  TEST  tests/qapi-schema/flat-union-base-any.out
  TEST  tests/qapi-schema/flat-union-base-union.out
  TEST  tests/qapi-schema/flat-union-empty.out
  TEST  tests/qapi-schema/flat-union-clash-member.out
  TEST  tests/qapi-schema/flat-union-incomplete-branch.out
  TEST  tests/qapi-schema/flat-union-inline.out
  TEST  tests/qapi-schema/flat-union-int-branch.out
  TEST  tests/qapi-schema/flat-union-invalid-branch-key.out
  TEST  tests/qapi-schema/flat-union-invalid-discriminator.out
  TEST  tests/qapi-schema/flat-union-no-base.out
  TEST  tests/qapi-schema/flat-union-optional-discriminator.out
  TEST  tests/qapi-schema/flat-union-string-discriminator.out
  TEST  tests/qapi-schema/funny-char.out
  TEST  tests/qapi-schema/ident-with-escape.out
  TEST  tests/qapi-schema/include-before-err.out
  TEST  tests/qapi-schema/include-cycle.out
  TEST  tests/qapi-schema/include-format-err.out
  TEST  tests/qapi-schema/include-nested-err.out
  TEST  tests/qapi-schema/include-no-file.out
  TEST  tests/qapi-schema/include-non-file.out
  TEST  tests/qapi-schema/include-relpath.out
  TEST  tests/qapi-schema/include-repetition.out
  TEST  tests/qapi-schema/include-self-cycle.out
  TEST  tests/qapi-schema/include-simple.out
  TEST  tests/qapi-schema/indented-expr.out
  TEST  tests/qapi-schema/leading-comma-list.out
  TEST  tests/qapi-schema/leading-comma-object.out
  TEST  tests/qapi-schema/missing-colon.out
  TEST  tests/qapi-schema/missing-comma-list.out
  TEST  tests/qapi-schema/missing-comma-object.out
  TEST  tests/qapi-schema/missing-type.out
  TEST  tests/qapi-schema/nested-struct-data.out
  TEST  tests/qapi-schema/non-objects.out
  TEST  tests/qapi-schema/qapi-schema-test.out
  TEST  tests/qapi-schema/quoted-structural-chars.out
  TEST  tests/qapi-schema/redefined-builtin.out
  TEST  tests/qapi-schema/redefined-command.out
  TEST  tests/qapi-schema/redefined-event.out
  TEST  tests/qapi-schema/redefined-type.out
  TEST  tests/qapi-schema/reserved-command-q.out
  TEST  tests/qapi-schema/reserved-enum-q.out
  TEST  tests/qapi-schema/reserved-member-has.out
  TEST  tests/qapi-schema/reserved-member-q.out
  TEST  tests/qapi-schema/reserved-member-u.out
  TEST  tests/qapi-schema/reserved-member-underscore.out
  TEST  tests/qapi-schema/reserved-type-kind.out
  TEST  tests/qapi-schema/reserved-type-list.out
  TEST  tests/qapi-schema/returns-alternate.out
  TEST  tests/qapi-schema/returns-array-bad.out
  TEST  tests/qapi-schema/returns-dict.out
  TEST  tests/qapi-schema/returns-unknown.out
  TEST  tests/qapi-schema/returns-whitelist.out
  TEST  tests/qapi-schema/struct-base-clash-deep.out
  TEST  tests/qapi-schema/struct-base-clash.out
  TEST  tests/qapi-schema/struct-data-invalid.out
  TEST  tests/qapi-schema/struct-member-invalid.out
  TEST  tests/qapi-schema/trailing-comma-list.out
  TEST  tests/qapi-schema/trailing-comma-object.out
  TEST  tests/qapi-schema/type-bypass-bad-gen.out
  TEST  tests/qapi-schema/unclosed-list.out
  TEST  tests/qapi-schema/unclosed-object.out
  TEST  tests/qapi-schema/unclosed-string.out
  TEST  tests/qapi-schema/unicode-str.out
  TEST  tests/qapi-schema/union-base-no-discriminator.out
  TEST  tests/qapi-schema/union-branch-case.out
  TEST  tests/qapi-schema/union-clash-branches.out
  TEST  tests/qapi-schema/union-empty.out
  TEST  tests/qapi-schema/union-invalid-base.out
  TEST  tests/qapi-schema/union-optional-branch.out
  TEST  tests/qapi-schema/union-unknown.out
  TEST  tests/qapi-schema/unknown-escape.out
  TEST  tests/qapi-schema/unknown-expr-key.out
  CC    tests/check-qdict.o
  CC    tests/check-qfloat.o
  CC    tests/check-qint.o
  CC    tests/check-qstring.o
  CC    tests/check-qlist.o
  CC    tests/check-qnull.o
  CC    tests/check-qjson.o
  CC    tests/test-qmp-output-visitor.o
  GEN   tests/test-qapi-visit.c
  GEN   tests/test-qapi-types.c
  GEN   tests/test-qapi-event.c
  GEN   tests/test-qmp-introspect.c
  CC    tests/test-clone-visitor.o
  CC    tests/test-qmp-input-visitor.o
  CC    tests/test-qmp-input-strict.o
  CC    tests/test-qmp-commands.o
  GEN   tests/test-qmp-marshal.c
  CC    tests/test-string-input-visitor.o
  CC    tests/test-string-output-visitor.o
  CC    tests/test-qmp-event.o
  CC    tests/test-opts-visitor.o
  CC    tests/test-coroutine.o
  CC    tests/test-visitor-serialization.o
  CC    tests/test-iov.o
  CC    tests/test-aio.o
  CC    tests/test-rfifolock.o
  CC    tests/test-throttle.o
  CC    tests/test-thread-pool.o
  CC    tests/test-hbitmap.o
  CC    tests/test-blockjob.o
  CC    tests/test-blockjob-txn.o
  CC    tests/test-x86-cpuid.o
  CC    tests/test-xbzrle.o
  CC    tests/test-vmstate.o
  CC    tests/test-cutils.o
  CC    tests/test-mul64.o
  CC    tests/test-int128.o
  CC    tests/rcutorture.o
  CC    tests/test-rcu-list.o
  CC    tests/test-qdist.o
  CC    tests/test-qht.o
  CC    tests/test-qht-par.o
  CC    tests/qht-bench.o
/tmp/qemu-test/src/tests/test-int128.c:180: warning: ‘__noclone__’ attribute directive ignored
  CC    tests/test-bitops.o
  CC    tests/check-qom-interface.o
  CC    tests/check-qom-proplist.o
  CC    tests/test-qemu-opts.o
  CC    tests/test-write-threshold.o
  CC    tests/test-crypto-hash.o
  CC    tests/test-crypto-cipher.o
  CC    tests/test-crypto-secret.o
  CC    tests/test-qga.o
  CC    tests/libqtest.o
  CC    tests/test-timed-average.o
  CC    tests/test-io-task.o
  CC    tests/test-io-channel-socket.o
  CC    tests/io-channel-helpers.o
  CC    tests/test-io-channel-file.o
  CC    tests/test-io-channel-command.o
  CC    tests/test-io-channel-buffer.o
  CC    tests/test-base64.o
  CC    tests/test-crypto-ivgen.o
  CC    tests/test-crypto-afsplit.o
  CC    tests/test-crypto-xts.o
  CC    tests/test-crypto-block.o
  CC    tests/test-logging.o
  CC    tests/vhost-user-test.o
  CC    tests/endianness-test.o
  CC    tests/fdc-test.o
  CC    tests/ide-test.o
  CC    tests/libqos/pci.o
  CC    tests/libqos/fw_cfg.o
  CC    tests/libqos/malloc.o
  CC    tests/libqos/i2c.o
  CC    tests/libqos/libqos.o
  CC    tests/libqos/pci-pc.o
/tmp/qemu-test/src/tests/ide-test.c: In function ‘cdrom_pio_impl’:
/tmp/qemu-test/src/tests/ide-test.c:739: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
/tmp/qemu-test/src/tests/ide-test.c: In function ‘test_cdrom_dma’:
/tmp/qemu-test/src/tests/ide-test.c:832: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
  CC    tests/libqos/malloc-pc.o
  CC    tests/libqos/libqos-pc.o
  CC    tests/libqos/ahci.o
  CC    tests/ahci-test.o
  CC    tests/hd-geo-test.o
  CC    tests/boot-order-test.o
  CC    tests/bios-tables-test.o
  CC    tests/boot-sector.o
  CC    tests/pxe-test.o
  CC    tests/rtc-test.o
  CC    tests/ipmi-kcs-test.o
  CC    tests/ipmi-bt-test.o
  CC    tests/i440fx-test.o
  CC    tests/fw_cfg-test.o
/tmp/qemu-test/src/tests/boot-sector.c: In function ‘boot_sector_init’:
/tmp/qemu-test/src/tests/boot-sector.c:80: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
  CC    tests/drive_del-test.o
  CC    tests/wdt_ib700-test.o
  CC    tests/tco-test.o
  CC    tests/e1000-test.o
  CC    tests/e1000e-test.o
  CC    tests/rtl8139-test.o
  CC    tests/pcnet-test.o
  CC    tests/eepro100-test.o
  CC    tests/ne2000-test.o
  CC    tests/nvme-test.o
  CC    tests/ac97-test.o
  CC    tests/es1370-test.o
  CC    tests/virtio-net-test.o
  CC    tests/libqos/virtio.o
  CC    tests/libqos/virtio-pci.o
  CC    tests/libqos/virtio-mmio.o
  CC    tests/libqos/malloc-generic.o
  CC    tests/virtio-balloon-test.o
  CC    tests/virtio-blk-test.o
  CC    tests/virtio-rng-test.o
  CC    tests/virtio-scsi-test.o
  CC    tests/virtio-serial-test.o
  CC    tests/virtio-console-test.o
  CC    tests/tpci200-test.o
  CC    tests/ipoctal232-test.o
  CC    tests/display-vga-test.o
  CC    tests/intel-hda-test.o
  CC    tests/ivshmem-test.o
  CC    tests/vmxnet3-test.o
  CC    tests/pvpanic-test.o
  CC    tests/i82801b11-test.o
  CC    tests/ioh3420-test.o
  CC    tests/usb-hcd-ohci-test.o
  CC    tests/libqos/usb.o
  CC    tests/usb-hcd-uhci-test.o
  CC    tests/usb-hcd-ehci-test.o
  CC    tests/usb-hcd-xhci-test.o
  CC    tests/pc-cpu-test.o
  CC    tests/q35-test.o
  CC    tests/test-netfilter.o
  CC    tests/test-filter-mirror.o
  CC    tests/test-filter-redirector.o
  CC    tests/postcopy-test.o
  CC    tests/device-introspect-test.o
  CC    tests/qom-test.o
  LINK  tests/check-qdict
  LINK  tests/check-qfloat
  LINK  tests/check-qint
  LINK  tests/check-qstring
  LINK  tests/check-qlist
  LINK  tests/check-qnull
  LINK  tests/check-qjson
  CC    tests/test-qapi-visit.o
  CC    tests/test-qapi-types.o
  CC    tests/test-qapi-event.o
  CC    tests/test-qmp-introspect.o
  CC    tests/test-qmp-marshal.o
  LINK  tests/test-coroutine
  LINK  tests/test-iov
  LINK  tests/test-aio
  LINK  tests/test-rfifolock
  LINK  tests/test-throttle
  LINK  tests/test-thread-pool
  LINK  tests/test-hbitmap
  LINK  tests/test-blockjob
  LINK  tests/test-blockjob-txn
  LINK  tests/test-x86-cpuid
  LINK  tests/test-xbzrle
  LINK  tests/test-vmstate
  LINK  tests/test-cutils
  LINK  tests/test-mul64
  LINK  tests/test-int128
  LINK  tests/rcutorture
  LINK  tests/test-rcu-list
  LINK  tests/test-qdist
  LINK  tests/test-qht
  LINK  tests/qht-bench
  LINK  tests/test-bitops
  LINK  tests/check-qom-interface
  LINK  tests/check-qom-proplist
  LINK  tests/test-qemu-opts
  LINK  tests/test-write-threshold
  LINK  tests/test-crypto-hash
  LINK  tests/test-crypto-cipher
  LINK  tests/test-crypto-secret
  LINK  tests/test-qga
  LINK  tests/test-timed-average
  LINK  tests/test-io-task
  LINK  tests/test-io-channel-socket
  LINK  tests/test-io-channel-file
  LINK  tests/test-io-channel-command
  LINK  tests/test-io-channel-buffer
  LINK  tests/test-base64
  LINK  tests/test-crypto-ivgen
  LINK  tests/test-crypto-afsplit
  LINK  tests/test-crypto-xts
  LINK  tests/test-crypto-block
  LINK  tests/test-logging
  LINK  tests/vhost-user-test
  LINK  tests/endianness-test
  LINK  tests/fdc-test
  LINK  tests/ide-test
  LINK  tests/ahci-test
  LINK  tests/hd-geo-test
  LINK  tests/boot-order-test
  LINK  tests/bios-tables-test
  LINK  tests/pxe-test
  LINK  tests/rtc-test
  LINK  tests/ipmi-kcs-test
  LINK  tests/ipmi-bt-test
  LINK  tests/i440fx-test
  LINK  tests/fw_cfg-test
  LINK  tests/drive_del-test
  LINK  tests/wdt_ib700-test
  LINK  tests/tco-test
  LINK  tests/e1000-test
  LINK  tests/e1000e-test
  LINK  tests/rtl8139-test
  LINK  tests/pcnet-test
  LINK  tests/eepro100-test
  LINK  tests/ne2000-test
  LINK  tests/nvme-test
  LINK  tests/ac97-test
  LINK  tests/es1370-test
  LINK  tests/virtio-net-test
  LINK  tests/virtio-balloon-test
  LINK  tests/virtio-blk-test
  LINK  tests/virtio-rng-test
  LINK  tests/virtio-scsi-test
  LINK  tests/virtio-serial-test
  LINK  tests/virtio-console-test
  LINK  tests/tpci200-test
  LINK  tests/ipoctal232-test
  LINK  tests/display-vga-test
  LINK  tests/intel-hda-test
  LINK  tests/ivshmem-test
  LINK  tests/vmxnet3-test
  LINK  tests/pvpanic-test
  LINK  tests/i82801b11-test
  LINK  tests/ioh3420-test
  LINK  tests/usb-hcd-ohci-test
  LINK  tests/usb-hcd-uhci-test
  LINK  tests/usb-hcd-ehci-test
  LINK  tests/usb-hcd-xhci-test
  LINK  tests/pc-cpu-test
  LINK  tests/q35-test
  LINK  tests/test-netfilter
  LINK  tests/test-filter-mirror
  LINK  tests/test-filter-redirector
  LINK  tests/postcopy-test
  LINK  tests/device-introspect-test
  LINK  tests/qom-test
GTESTER tests/check-qdict
GTESTER tests/check-qfloat
GTESTER tests/check-qint
GTESTER tests/check-qstring
GTESTER tests/check-qlist
GTESTER tests/check-qnull
GTESTER tests/check-qjson
  LINK  tests/test-qmp-output-visitor
  LINK  tests/test-clone-visitor
  LINK  tests/test-qmp-input-visitor
  LINK  tests/test-qmp-input-strict
  LINK  tests/test-qmp-commands
  LINK  tests/test-string-input-visitor
  LINK  tests/test-string-output-visitor
  LINK  tests/test-qmp-event
  LINK  tests/test-opts-visitor
GTESTER tests/test-coroutine
  LINK  tests/test-visitor-serialization
GTESTER tests/test-iov
GTESTER tests/test-aio
GTESTER tests/test-rfifolock
GTESTER tests/test-throttle
GTESTER tests/test-thread-pool
GTESTER tests/test-hbitmap
GTESTER tests/test-blockjob
GTESTER tests/test-blockjob-txn
GTESTER tests/test-x86-cpuid
GTESTER tests/test-xbzrle
GTESTER tests/test-vmstate
GTESTER tests/test-cutils
GTESTER tests/test-mul64
GTESTER tests/test-int128
GTESTER tests/rcutorture
GTESTER tests/test-rcu-list
GTESTER tests/test-qdist
GTESTER tests/test-qht
  LINK  tests/test-qht-par
GTESTER tests/test-bitops
GTESTER tests/check-qom-interface
GTESTER tests/check-qom-proplist
GTESTER tests/test-qemu-opts
GTESTER tests/test-write-threshold
GTESTER tests/test-crypto-hash
GTESTER tests/test-crypto-cipher
GTESTER tests/test-crypto-secret
GTESTER tests/test-qga
GTESTER tests/test-timed-average
GTESTER tests/test-io-task
GTESTER tests/test-io-channel-socket
GTESTER tests/test-io-channel-file
GTESTER tests/test-io-channel-command
GTESTER tests/test-io-channel-buffer
GTESTER tests/test-base64
GTESTER tests/test-crypto-ivgen
GTESTER tests/test-crypto-afsplit
GTESTER tests/test-crypto-xts
GTESTER tests/test-crypto-block
GTESTER tests/test-logging
GTESTER check-qtest-x86_64
GTESTER check-qtest-aarch64
GTESTER tests/test-qmp-output-visitor
GTESTER tests/test-clone-visitor
GTESTER tests/test-qmp-input-visitor
GTESTER tests/test-qmp-input-strict
GTESTER tests/test-qmp-commands
GTESTER tests/test-string-input-visitor
GTESTER tests/test-string-output-visitor
GTESTER tests/test-qmp-event
GTESTER tests/test-opts-visitor
GTESTER tests/test-visitor-serialization
GTESTER tests/test-qht-par
=== OUTPUT END ===

Abort: command timeout (>3600 seconds)


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
Fam Zheng Aug. 11, 2016, 6:27 a.m. UTC | #2
On Wed, 08/10 23:17, no-reply@ec2-52-6-146-230.compute-1.amazonaws.com wrote:
> Hi,
> 
> Your series failed automatic build test. Please find the testing commands and
> their output below. If you have docker installed, you can probably reproduce it
> locally.

This may not relate to this patch. But some qtest did hang on the test machine.

[root@virtlab205 ~]# pgrep -af qtest

12377 /bin/sh -c echo "GTESTER check-qtest-x86_64" &&
QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$((RANDOM % 255 + 1))} gtester -k -q
-m=quick tests/vhost-user-test tests/endianness-test tests/fdc-test
tests/ide-test tests/ahci-test tests/hd-geo-test tests/boot-order-test
tests/bios-tables-test tests/pxe-test tests/rtc-test tests/ipmi-kcs-test
tests/ipmi-bt-test tests/i440fx-test tests/fw_cfg-test tests/drive_del-test
tests/wdt_ib700-test tests/tco-test tests/e1000-test tests/e1000e-test
tests/rtl8139-test tests/pcnet-test tests/eepro100-test tests/ne2000-test
tests/nvme-test tests/ac97-test tests/es1370-test tests/virtio-net-test
tests/virtio-balloon-test tests/virtio-blk-test tests/virtio-rng-test
tests/virtio-scsi-test tests/virtio-serial-test tests/virtio-console-test
tests/tpci200-test tests/ipoctal232-test tests/display-vga-test
tests/intel-hda-test tests/ivshmem-test tests/vmxnet3-test tests/pvpanic-test
tests/i82801b11-test tests/ioh3420-test tests/usb-hcd-ohci-test
tests/usb-hcd-uhci-test tests/usb-hcd-ehci-test tests/usb-hcd-xhci-test
tests/pc-cpu-test tests/q35-test tests/test-netfilter tests/test-filter-mirror
tests/test-filter-redirector tests/postcopy-test tests/device-introspect-test
tests/qom-test

12381 x86_64-softmmu/qemu-system-x86_64 -qtest unix:/tmp/qtest-6376.sock,nowait
-qtest-log /dev/null -qmp unix:/tmp/qtest-6376.qmp,nowait -machine accel=qtest
-display none -machine accel=tcg -m 512 -object
memory-backend-file,id=mem,size=512M,mem-path=/tmp/vhost-test-4glolA,share=on
-numa node,memdev=mem -chardev
socket,id=chr-test,path=/tmp/vhost-test-4glolA/test.sock -netdev
vhost-user,id=net0,chardev=chr-test,vhostforce -device
virtio-net-pci,netdev=net0,romfile=./pc-bios/pxe-virtio.rom

I haven't looked any deeper.

Fam

> 
> Subject: [Qemu-devel] [PATCH] 9pfs: add check for relative path
> Message-id: 1470892391-4917-1-git-send-email-ppandit@redhat.com
> Type: series
> 
> === TEST SCRIPT BEGIN ===
> #!/bin/bash
> set -e
> git submodule update --init dtc
> make J=8 docker-test-quick@centos6
> 
> # we need CURL DPRINTF patch
> # http://patchew.org/QEMU/1470027888-24381-1-git-send-email-famz%40redhat.com/
> #make J=8 docker-test-mingw@fedora
> === TEST SCRIPT END ===
> 
> Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
> Switched to a new branch 'test'
> 4e97568 9pfs: add check for relative path
> 
> === OUTPUT BEGIN ===
> Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
> Cloning into 'dtc'...
> Submodule path 'dtc': checked out '65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf'
>   BUILD centos6
>   ARCHIVE qemu.tgz
>   ARCHIVE dtc.tgz
>   COPY RUNNER
>   RUN test-quick in centos6
> No C++ compiler available; disabling C++ specific optional code
> Install prefix    /tmp/qemu-test/src/tests/docker/install
> BIOS directory    /tmp/qemu-test/src/tests/docker/install/share/qemu
> binary directory  /tmp/qemu-test/src/tests/docker/install/bin
> library directory /tmp/qemu-test/src/tests/docker/install/lib
> module directory  /tmp/qemu-test/src/tests/docker/install/lib/qemu
> libexec directory /tmp/qemu-test/src/tests/docker/install/libexec
> include directory /tmp/qemu-test/src/tests/docker/install/include
> config directory  /tmp/qemu-test/src/tests/docker/install/etc
> local state directory   /tmp/qemu-test/src/tests/docker/install/var
> Manual directory  /tmp/qemu-test/src/tests/docker/install/share/man
> ELF interp prefix /usr/gnemul/qemu-%M
> Source path       /tmp/qemu-test/src
> C compiler        cc
> Host C compiler   cc
> C++ compiler      
> Objective-C compiler cc
> ARFLAGS           rv
> CFLAGS            -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -g 
> QEMU_CFLAGS       -I/usr/include/pixman-1    -fPIE -DPIE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common  -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all
> LDFLAGS           -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g 
> make              make
> install           install
> python            python -B
> smbd              /usr/sbin/smbd
> module support    no
> host CPU          x86_64
> host big endian   no
> target list       x86_64-softmmu aarch64-softmmu
> tcg debug enabled no
> gprof enabled     no
> sparse enabled    no
> strip binaries    yes
> profiler          no
> static build      no
> pixman            system
> SDL support       yes (1.2.14)
> GTK support       no 
> GTK GL support    no
> VTE support       no 
> TLS priority      NORMAL
> GNUTLS support    no
> GNUTLS rnd        no
> libgcrypt         no
> libgcrypt kdf     no
> nettle            no 
> nettle kdf        no
> libtasn1          no
> curses support    no
> virgl support     no
> curl support      no
> mingw32 support   no
> Audio drivers     oss
> Block whitelist (rw) 
> Block whitelist (ro) 
> VirtFS support    no
> VNC support       yes
> VNC SASL support  no
> VNC JPEG support  no
> VNC PNG support   no
> xen support       no
> brlapi support    no
> bluez  support    no
> Documentation     no
> PIE               yes
> vde support       no
> netmap support    no
> Linux AIO support no
> ATTR/XATTR support yes
> Install blobs     yes
> KVM support       yes
> RDMA support      no
> TCG interpreter   no
> fdt support       yes
> preadv support    yes
> fdatasync         yes
> madvise           yes
> posix_madvise     yes
> uuid support      no
> libcap-ng support no
> vhost-net support yes
> vhost-scsi support yes
> Trace backends    log
> spice support     no 
> rbd support       no
> xfsctl support    no
> smartcard support no
> libusb            no
> usb net redir     no
> OpenGL support    no
> OpenGL dmabufs    no
> libiscsi support  no
> libnfs support    no
> build guest agent yes
> QGA VSS support   no
> QGA w32 disk info no
> QGA MSI support   no
> seccomp support   no
> coroutine backend ucontext
> coroutine pool    yes
> GlusterFS support no
> Archipelago support no
> gcov              gcov
> gcov enabled      no
> TPM support       yes
> libssh2 support   no
> TPM passthrough   yes
> QOM debugging     yes
> vhdx              no
> lzo support       no
> snappy support    no
> bzip2 support     no
> NUMA host support no
> tcmalloc support  no
> jemalloc support  no
> avx2 optimization no
>   GEN   x86_64-softmmu/config-devices.mak.tmp
>   GEN   aarch64-softmmu/config-devices.mak.tmp
>   GEN   config-host.h
>   GEN   qemu-options.def
>   GEN   qmp-commands.h
>   GEN   qapi-types.h
>   GEN   qapi-visit.h
>   GEN   qapi-event.h
>   GEN   x86_64-softmmu/config-devices.mak
>   GEN   aarch64-softmmu/config-devices.mak
>   GEN   qmp-introspect.h
>   GEN   tests/test-qapi-types.h
>   GEN   tests/test-qapi-visit.h
>   GEN   tests/test-qmp-commands.h
>   GEN   tests/test-qapi-event.h
>   GEN   tests/test-qmp-introspect.h
>   GEN   config-all-devices.mak
>   GEN   trace/generated-events.h
>   GEN   trace/generated-tracers.h
>   GEN   trace/generated-tcg-tracers.h
>   GEN   trace/generated-helpers-wrappers.h
>   GEN   trace/generated-helpers.h
>   CC    tests/qemu-iotests/socket_scm_helper.o
>   GEN   qga/qapi-generated/qga-qapi-types.h
>   GEN   qga/qapi-generated/qga-qapi-visit.h
>   GEN   qga/qapi-generated/qga-qmp-commands.h
>   GEN   qga/qapi-generated/qga-qapi-types.c
>   GEN   qga/qapi-generated/qga-qapi-visit.c
>   GEN   qga/qapi-generated/qga-qmp-marshal.c
>   GEN   qmp-introspect.c
>   GEN   qapi-types.c
>   GEN   qapi-visit.c
>   GEN   qapi-event.c
>   CC    qapi/qapi-visit-core.o
>   CC    qapi/qapi-dealloc-visitor.o
>   CC    qapi/qmp-input-visitor.o
>   CC    qapi/qmp-output-visitor.o
>   CC    qapi/qmp-registry.o
>   CC    qapi/qmp-dispatch.o
>   CC    qapi/string-input-visitor.o
>   CC    qapi/string-output-visitor.o
>   CC    qapi/opts-visitor.o
>   CC    qapi/qapi-clone-visitor.o
>   CC    qapi/qmp-event.o
>   CC    qapi/qapi-util.o
>   CC    qobject/qnull.o
>   CC    qobject/qint.o
>   CC    qobject/qstring.o
>   CC    qobject/qdict.o
>   CC    qobject/qlist.o
>   CC    qobject/qfloat.o
>   CC    qobject/qbool.o
>   CC    qobject/qjson.o
>   CC    qobject/qobject.o
>   CC    qobject/json-lexer.o
>   CC    qobject/json-streamer.o
>   CC    qobject/json-parser.o
>   GEN   trace/generated-events.c
>   CC    trace/control.o
>   CC    trace/qmp.o
>   CC    util/osdep.o
>   CC    util/cutils.o
>   CC    util/unicode.o
>   CC    util/qemu-timer-common.o
>   CC    util/compatfd.o
>   CC    util/event_notifier-posix.o
>   CC    util/mmap-alloc.o
>   CC    util/oslib-posix.o
>   CC    util/qemu-openpty.o
>   CC    util/qemu-thread-posix.o
>   CC    util/memfd.o
>   CC    util/path.o
>   CC    util/envlist.o
>   CC    util/module.o
>   CC    util/bitmap.o
>   CC    util/bitops.o
>   CC    util/hbitmap.o
>   CC    util/fifo8.o
>   CC    util/acl.o
>   CC    util/error.o
>   CC    util/qemu-error.o
>   CC    util/id.o
>   CC    util/iov.o
>   CC    util/qemu-config.o
>   CC    util/qemu-sockets.o
>   CC    util/uri.o
>   CC    util/notify.o
>   CC    util/qemu-option.o
>   CC    util/qemu-progress.o
>   CC    util/hexdump.o
>   CC    util/crc32c.o
>   CC    util/throttle.o
>   CC    util/getauxval.o
>   CC    util/readline.o
>   CC    util/rfifolock.o
>   CC    util/rcu.o
>   CC    util/qemu-coroutine.o
>   CC    util/qemu-coroutine-lock.o
>   CC    util/qemu-coroutine-io.o
>   CC    util/qemu-coroutine-sleep.o
>   CC    util/coroutine-ucontext.o
>   CC    util/buffer.o
>   CC    util/timed-average.o
>   CC    util/base64.o
>   CC    util/log.o
>   CC    util/qdist.o
>   CC    util/qht.o
>   CC    util/range.o
>   CC    crypto/pbkdf-stub.o
>   CC    stubs/arch-query-cpu-def.o
>   CC    stubs/bdrv-next-monitor-owned.o
>   CC    stubs/blk-commit-all.o
>   CC    stubs/blockdev-close-all-bdrv-states.o
> /tmp/qemu-test/src/util/qht.c: In function ‘qht_reset_size’:
> /tmp/qemu-test/src/util/qht.c:413: warning: ‘new’ may be used uninitialized in this function
>   CC    stubs/clock-warp.o
>   CC    stubs/cpu-get-clock.o
>   CC    stubs/cpu-get-icount.o
>   CC    stubs/dump.o
>   CC    stubs/fdset-add-fd.o
>   CC    stubs/fdset-find-fd.o
>   CC    stubs/fdset-get-fd.o
>   CC    stubs/fdset-remove-fd.o
>   CC    stubs/gdbstub.o
>   CC    stubs/get-fd.o
>   CC    stubs/get-next-serial.o
>   CC    stubs/get-vm-name.o
>   CC    stubs/iothread-lock.o
>   CC    stubs/is-daemonized.o
>   CC    stubs/mon-is-qmp.o
>   CC    stubs/machine-init-done.o
>   CC    stubs/migr-blocker.o
>   CC    stubs/mon-printf.o
>   CC    stubs/monitor-init.o
>   CC    stubs/notify-event.o
>   CC    stubs/qtest.o
>   CC    stubs/replay.o
>   CC    stubs/replay-user.o
>   CC    stubs/reset.o
>   CC    stubs/runstate-check.o
>   CC    stubs/set-fd-handler.o
>   CC    stubs/slirp.o
>   CC    stubs/sysbus.o
>   CC    stubs/trace-control.o
>   CC    stubs/uuid.o
>   CC    stubs/vm-stop.o
>   CC    stubs/vmstate.o
>   CC    stubs/cpus.o
>   CC    stubs/kvm.o
>   CC    stubs/qmp_pc_dimm_device_list.o
>   CC    stubs/target-monitor-defs.o
>   CC    stubs/target-get-monitor-def.o
>   CC    stubs/vhost.o
>   CC    stubs/iohandler.o
>   CC    stubs/smbios_type_38.o
>   CC    stubs/ipmi.o
>   CC    stubs/pc_madt_cpu_entry.o
>   CC    contrib/ivshmem-client/ivshmem-client.o
>   CC    contrib/ivshmem-client/main.o
>   CC    contrib/ivshmem-server/main.o
>   CC    contrib/ivshmem-server/ivshmem-server.o
>   CC    qemu-nbd.o
>   CC    async.o
>   CC    thread-pool.o
>   CC    block.o
>   CC    blockjob.o
>   CC    main-loop.o
>   CC    iohandler.o
>   CC    qemu-timer.o
>   CC    aio-posix.o
>   CC    qemu-io-cmds.o
>   CC    block/raw_bsd.o
>   CC    block/qcow.o
>   CC    block/vdi.o
>   CC    block/vmdk.o
>   CC    block/cloop.o
>   CC    block/bochs.o
>   CC    block/vpc.o
>   CC    block/vvfat.o
>   CC    block/qcow2.o
>   CC    block/qcow2-refcount.o
>   CC    block/qcow2-cluster.o
>   CC    block/qcow2-snapshot.o
>   CC    block/qcow2-cache.o
>   CC    block/qed.o
>   CC    block/qed-gencb.o
>   CC    block/qed-l2-cache.o
>   CC    block/qed-table.o
>   CC    block/qed-cluster.o
>   CC    block/qed-check.o
>   CC    block/quorum.o
>   CC    block/parallels.o
>   CC    block/blkdebug.o
>   CC    block/blkverify.o
>   CC    block/blkreplay.o
>   CC    block/block-backend.o
>   CC    block/snapshot.o
>   CC    block/qapi.o
>   CC    block/raw-posix.o
>   CC    block/null.o
>   CC    block/mirror.o
>   CC    block/commit.o
>   CC    block/io.o
>   CC    block/throttle-groups.o
>   CC    block/nbd.o
>   CC    block/nbd-client.o
>   CC    block/sheepdog.o
>   CC    block/accounting.o
>   CC    block/dirty-bitmap.o
>   CC    block/write-threshold.o
>   CC    block/crypto.o
>   CC    nbd/server.o
>   CC    nbd/client.o
>   CC    nbd/common.o
>   CC    block/dmg.o
>   CC    crypto/init.o
>   CC    crypto/hash.o
>   CC    crypto/hash-glib.o
>   CC    crypto/aes.o
>   CC    crypto/desrfb.o
>   CC    crypto/cipher.o
>   CC    crypto/tlscreds.o
>   CC    crypto/tlscredsanon.o
>   CC    crypto/tlscredsx509.o
>   CC    crypto/tlssession.o
>   CC    crypto/secret.o
>   CC    crypto/random-platform.o
>   CC    crypto/pbkdf.o
>   CC    crypto/ivgen.o
>   CC    crypto/ivgen-essiv.o
>   CC    crypto/ivgen-plain.o
>   CC    crypto/ivgen-plain64.o
>   CC    crypto/afsplit.o
>   CC    crypto/xts.o
>   CC    crypto/block.o
>   CC    crypto/block-qcow.o
>   CC    crypto/block-luks.o
>   CC    io/channel.o
>   CC    io/channel-buffer.o
>   CC    io/channel-command.o
>   CC    io/channel-file.o
>   CC    io/channel-socket.o
>   CC    io/channel-tls.o
>   CC    io/channel-watch.o
>   CC    io/channel-websock.o
>   CC    io/channel-util.o
>   CC    io/task.o
>   CC    qom/object.o
>   CC    qom/container.o
>   CC    qom/qom-qobject.o
>   CC    qom/object_interfaces.o
>   GEN   qemu-img-cmds.h
>   CC    qemu-io.o
>   CC    qemu-bridge-helper.o
>   CC    blockdev.o
>   CC    blockdev-nbd.o
>   CC    iothread.o
>   CC    qdev-monitor.o
>   CC    device-hotplug.o
>   CC    os-posix.o
>   CC    qemu-char.o
>   CC    page_cache.o
>   CC    accel.o
>   CC    bt-host.o
>   CC    bt-vhci.o
>   CC    dma-helpers.o
>   CC    vl.o
>   CC    tpm.o
>   CC    device_tree.o
>   GEN   qmp-marshal.c
>   CC    qmp.o
>   CC    hmp.o
>   CC    tcg-runtime.o
>   CC    audio/audio.o
>   CC    audio/noaudio.o
>   CC    audio/wavaudio.o
>   CC    audio/mixeng.o
>   CC    audio/sdlaudio.o
>   CC    audio/ossaudio.o
>   CC    audio/wavcapture.o
>   CC    backends/rng.o
>   CC    backends/rng-egd.o
>   CC    backends/rng-random.o
>   CC    backends/msmouse.o
>   CC    backends/testdev.o
>   CC    backends/tpm.o
>   CC    backends/hostmem.o
>   CC    backends/hostmem-ram.o
>   CC    backends/hostmem-file.o
>   CC    block/stream.o
>   CC    block/backup.o
>   CC    disas/arm.o
>   CC    disas/i386.o
>   CC    fsdev/qemu-fsdev-dummy.o
>   CC    fsdev/qemu-fsdev-opts.o
>   CC    hw/acpi/core.o
>   CC    hw/acpi/piix4.o
>   CC    hw/acpi/pcihp.o
>   CC    hw/acpi/ich9.o
>   CC    hw/acpi/tco.o
>   CC    hw/acpi/cpu_hotplug.o
>   CC    hw/acpi/memory_hotplug.o
>   CC    hw/acpi/memory_hotplug_acpi_table.o
>   CC    hw/acpi/cpu.o
>   CC    hw/acpi/acpi_interface.o
>   CC    hw/acpi/bios-linker-loader.o
>   CC    hw/acpi/aml-build.o
>   CC    hw/acpi/ipmi.o
>   CC    hw/audio/sb16.o
>   CC    hw/audio/es1370.o
>   CC    hw/audio/ac97.o
>   CC    hw/audio/fmopl.o
>   CC    hw/audio/adlib.o
>   CC    hw/audio/gus.o
>   CC    hw/audio/gusemu_hal.o
>   CC    hw/audio/gusemu_mixer.o
>   CC    hw/audio/cs4231a.o
>   CC    hw/audio/intel-hda.o
>   CC    hw/audio/hda-codec.o
>   CC    hw/audio/pcspk.o
>   CC    hw/audio/wm8750.o
>   CC    hw/audio/pl041.o
>   CC    hw/audio/lm4549.o
>   CC    hw/audio/marvell_88w8618.o
>   CC    hw/block/block.o
>   CC    hw/block/cdrom.o
>   CC    hw/block/hd-geometry.o
>   CC    hw/block/fdc.o
>   CC    hw/block/m25p80.o
>   CC    hw/block/nand.o
>   CC    hw/block/pflash_cfi01.o
>   CC    hw/block/pflash_cfi02.o
>   CC    hw/block/ecc.o
>   CC    hw/block/onenand.o
>   CC    hw/block/nvme.o
>   CC    hw/bt/core.o
>   CC    hw/bt/l2cap.o
>   CC    hw/bt/sdp.o
>   CC    hw/bt/hci.o
>   CC    hw/bt/hid.o
>   CC    hw/bt/hci-csr.o
>   CC    hw/char/ipoctal232.o
>   CC    hw/char/parallel.o
>   CC    hw/char/pl011.o
>   CC    hw/char/serial.o
>   CC    hw/char/serial-isa.o
>   CC    hw/char/serial-pci.o
>   CC    hw/char/cadence_uart.o
>   CC    hw/char/virtio-console.o
>   CC    hw/char/debugcon.o
>   CC    hw/char/imx_serial.o
>   CC    hw/core/qdev.o
>   CC    hw/core/qdev-properties.o
>   CC    hw/core/bus.o
>   CC    hw/core/fw-path-provider.o
>   CC    hw/core/irq.o
>   CC    hw/core/hotplug.o
>   CC    hw/core/ptimer.o
>   CC    hw/core/sysbus.o
>   CC    hw/core/machine.o
>   CC    hw/core/null-machine.o
>   CC    hw/core/loader.o
>   CC    hw/core/qdev-properties-system.o
>   CC    hw/core/register.o
>   CC    hw/core/platform-bus.o
>   CC    hw/display/ads7846.o
>   CC    hw/display/cirrus_vga.o
>   CC    hw/display/pl110.o
>   CC    hw/display/ssd0303.o
>   CC    hw/display/ssd0323.o
>   CC    hw/display/vga-pci.o
>   CC    hw/display/vga-isa.o
>   CC    hw/display/vmware_vga.o
>   CC    hw/display/blizzard.o
>   CC    hw/display/exynos4210_fimd.o
>   CC    hw/display/framebuffer.o
>   CC    hw/display/tc6393xb.o
>   CC    hw/dma/pl080.o
>   CC    hw/dma/pl330.o
>   CC    hw/dma/i8257.o
>   CC    hw/dma/xlnx-zynq-devcfg.o
>   CC    hw/gpio/max7310.o
>   CC    hw/gpio/zaurus.o
>   CC    hw/gpio/pl061.o
>   CC    hw/gpio/gpio_key.o
>   CC    hw/i2c/core.o
>   CC    hw/i2c/smbus.o
>   CC    hw/i2c/smbus_eeprom.o
>   CC    hw/i2c/i2c-ddc.o
>   CC    hw/i2c/versatile_i2c.o
>   CC    hw/i2c/smbus_ich9.o
>   CC    hw/i2c/pm_smbus.o
>   CC    hw/i2c/bitbang_i2c.o
>   CC    hw/i2c/exynos4210_i2c.o
>   CC    hw/i2c/imx_i2c.o
>   CC    hw/i2c/aspeed_i2c.o
>   CC    hw/ide/core.o
>   CC    hw/ide/atapi.o
>   CC    hw/ide/qdev.o
>   CC    hw/ide/pci.o
>   CC    hw/ide/isa.o
>   CC    hw/ide/piix.o
>   CC    hw/ide/microdrive.o
>   CC    hw/ide/ahci.o
>   CC    hw/ide/ich.o
>   CC    hw/input/hid.o
>   CC    hw/input/lm832x.o
>   CC    hw/input/pckbd.o
>   CC    hw/input/pl050.o
>   CC    hw/input/ps2.o
>   CC    hw/input/stellaris_input.o
>   CC    hw/input/tsc2005.o
>   CC    hw/input/vmmouse.o
>   CC    hw/input/virtio-input.o
>   CC    hw/input/virtio-input-hid.o
>   CC    hw/input/virtio-input-host.o
>   CC    hw/intc/i8259_common.o
>   CC    hw/intc/i8259.o
>   CC    hw/intc/pl190.o
>   CC    hw/intc/imx_avic.o
>   CC    hw/intc/realview_gic.o
>   CC    hw/intc/ioapic_common.o
>   CC    hw/intc/arm_gic_common.o
>   CC    hw/intc/arm_gic.o
>   CC    hw/intc/arm_gicv2m.o
>   CC    hw/intc/arm_gicv3_common.o
>   CC    hw/intc/arm_gicv3.o
>   CC    hw/intc/arm_gicv3_dist.o
>   CC    hw/intc/arm_gicv3_redist.o
>   CC    hw/ipack/ipack.o
>   CC    hw/ipack/tpci200.o
>   CC    hw/ipmi/ipmi.o
>   CC    hw/ipmi/ipmi_bmc_sim.o
>   CC    hw/ipmi/ipmi_bmc_extern.o
>   CC    hw/ipmi/isa_ipmi_kcs.o
>   CC    hw/ipmi/isa_ipmi_bt.o
>   CC    hw/isa/isa-bus.o
>   CC    hw/isa/apm.o
>   CC    hw/mem/pc-dimm.o
>   CC    hw/mem/nvdimm.o
>   CC    hw/misc/applesmc.o
>   CC    hw/misc/max111x.o
>   CC    hw/misc/tmp105.o
>   CC    hw/misc/debugexit.o
>   CC    hw/misc/sga.o
>   CC    hw/misc/pc-testdev.o
>   CC    hw/misc/pci-testdev.o
>   CC    hw/misc/arm_l2x0.o
>   CC    hw/misc/arm_integrator_debug.o
>   CC    hw/misc/a9scu.o
>   CC    hw/misc/arm11scu.o
>   CC    hw/net/ne2000.o
>   CC    hw/net/eepro100.o
>   CC    hw/net/pcnet-pci.o
>   CC    hw/net/pcnet.o
>   CC    hw/net/e1000.o
>   CC    hw/net/e1000x_common.o
>   CC    hw/net/net_tx_pkt.o
>   CC    hw/net/net_rx_pkt.o
>   CC    hw/net/e1000e.o
>   CC    hw/net/e1000e_core.o
>   CC    hw/net/rtl8139.o
>   CC    hw/net/vmxnet3.o
>   CC    hw/net/smc91c111.o
>   CC    hw/net/lan9118.o
>   CC    hw/net/ne2000-isa.o
>   CC    hw/net/xgmac.o
>   CC    hw/net/allwinner_emac.o
>   CC    hw/net/imx_fec.o
>   CC    hw/net/cadence_gem.o
>   CC    hw/net/stellaris_enet.o
>   CC    hw/net/rocker/rocker.o
>   CC    hw/net/rocker/rocker_fp.o
>   CC    hw/net/rocker/rocker_desc.o
>   CC    hw/net/rocker/rocker_world.o
>   CC    hw/net/rocker/rocker_of_dpa.o
>   CC    hw/nvram/eeprom93xx.o
>   CC    hw/nvram/fw_cfg.o
>   CC    hw/pci-bridge/pci_bridge_dev.o
>   CC    hw/pci-bridge/pci_expander_bridge.o
>   CC    hw/pci-bridge/xio3130_upstream.o
>   CC    hw/pci-bridge/xio3130_downstream.o
>   CC    hw/pci-bridge/ioh3420.o
>   CC    hw/pci-bridge/i82801b11.o
>   CC    hw/pci-host/pam.o
>   CC    hw/pci-host/versatile.o
> /tmp/qemu-test/src/hw/nvram/fw_cfg.c: In function ‘fw_cfg_dma_transfer’:
> /tmp/qemu-test/src/hw/nvram/fw_cfg.c:330: warning: ‘read’ may be used uninitialized in this function
>   CC    hw/pci-host/piix.o
>   CC    hw/pci-host/q35.o
>   CC    hw/pci-host/gpex.o
>   CC    hw/pci/pci.o
>   CC    hw/pci/pci_bridge.o
>   CC    hw/pci/msix.o
>   CC    hw/pci/msi.o
>   CC    hw/pci/shpc.o
>   CC    hw/pci/slotid_cap.o
>   CC    hw/pci/pci_host.o
>   CC    hw/pci/pcie_host.o
>   CC    hw/pci/pcie.o
>   CC    hw/pci/pcie_aer.o
>   CC    hw/pci/pcie_port.o
>   CC    hw/pci/pci-stub.o
>   CC    hw/pcmcia/pcmcia.o
>   CC    hw/scsi/scsi-disk.o
>   CC    hw/scsi/scsi-generic.o
>   CC    hw/scsi/scsi-bus.o
>   CC    hw/scsi/lsi53c895a.o
>   CC    hw/scsi/mptsas.o
>   CC    hw/scsi/mptconfig.o
>   CC    hw/scsi/mptendian.o
>   CC    hw/scsi/megasas.o
>   CC    hw/scsi/vmw_pvscsi.o
>   CC    hw/scsi/esp.o
>   CC    hw/scsi/esp-pci.o
>   CC    hw/sd/pl181.o
>   CC    hw/sd/ssi-sd.o
>   CC    hw/sd/sd.o
>   CC    hw/sd/core.o
>   CC    hw/sd/sdhci.o
>   CC    hw/smbios/smbios.o
>   CC    hw/smbios/smbios_type_38.o
>   CC    hw/ssi/pl022.o
>   CC    hw/ssi/ssi.o
>   CC    hw/ssi/xilinx_spips.o
>   CC    hw/ssi/aspeed_smc.o
>   CC    hw/timer/arm_timer.o
>   CC    hw/timer/arm_mptimer.o
>   CC    hw/timer/a9gtimer.o
>   CC    hw/timer/cadence_ttc.o
>   CC    hw/timer/ds1338.o
>   CC    hw/timer/hpet.o
>   CC    hw/timer/i8254_common.o
>   CC    hw/timer/i8254.o
>   CC    hw/timer/pl031.o
>   CC    hw/timer/twl92230.o
>   CC    hw/timer/imx_epit.o
>   CC    hw/timer/imx_gpt.o
>   CC    hw/timer/stm32f2xx_timer.o
>   CC    hw/timer/aspeed_timer.o
>   CC    hw/tpm/tpm_tis.o
>   CC    hw/tpm/tpm_passthrough.o
>   CC    hw/tpm/tpm_util.o
>   CC    hw/usb/core.o
>   CC    hw/usb/combined-packet.o
>   CC    hw/usb/bus.o
>   CC    hw/usb/libhw.o
>   CC    hw/usb/desc.o
>   CC    hw/usb/desc-msos.o
>   CC    hw/usb/hcd-uhci.o
>   CC    hw/usb/hcd-ohci.o
>   CC    hw/usb/hcd-ehci.o
>   CC    hw/usb/hcd-ehci-pci.o
>   CC    hw/usb/hcd-ehci-sysbus.o
>   CC    hw/usb/hcd-xhci.o
>   CC    hw/usb/hcd-musb.o
>   CC    hw/usb/dev-hub.o
>   CC    hw/usb/dev-hid.o
>   CC    hw/usb/dev-wacom.o
>   CC    hw/usb/dev-storage.o
>   CC    hw/usb/dev-uas.o
>   CC    hw/usb/dev-audio.o
>   CC    hw/usb/dev-serial.o
>   CC    hw/usb/dev-network.o
>   CC    hw/usb/dev-bluetooth.o
>   CC    hw/usb/dev-smartcard-reader.o
>   CC    hw/usb/dev-mtp.o
>   CC    hw/usb/host-stub.o
>   CC    hw/virtio/virtio-rng.o
>   CC    hw/virtio/virtio-pci.o
>   CC    hw/virtio/virtio-bus.o
>   CC    hw/virtio/virtio-mmio.o
>   CC    hw/watchdog/watchdog.o
>   CC    hw/watchdog/wdt_i6300esb.o
>   CC    hw/watchdog/wdt_ib700.o
>   CC    migration/migration.o
>   CC    migration/socket.o
>   CC    migration/fd.o
>   CC    migration/exec.o
>   CC    migration/tls.o
>   CC    migration/vmstate.o
>   CC    migration/qemu-file.o
>   CC    migration/qemu-file-channel.o
>   CC    migration/xbzrle.o
>   CC    migration/postcopy-ram.o
>   CC    migration/qjson.o
>   CC    migration/block.o
>   CC    net/net.o
>   CC    net/queue.o
>   CC    net/checksum.o
>   CC    net/util.o
>   CC    net/hub.o
>   CC    net/socket.o
>   CC    net/dump.o
>   CC    net/eth.o
>   CC    net/l2tpv3.o
>   CC    net/tap.o
>   CC    net/vhost-user.o
>   CC    net/tap-linux.o
>   CC    net/slirp.o
>   CC    net/filter.o
>   CC    net/filter-buffer.o
>   CC    net/filter-mirror.o
>   CC    qom/cpu.o
>   CC    replay/replay.o
>   CC    replay/replay-internal.o
>   CC    replay/replay-events.o
>   CC    replay/replay-time.o
>   CC    replay/replay-input.o
>   CC    replay/replay-char.o
>   CC    slirp/cksum.o
>   CC    slirp/if.o
> /tmp/qemu-test/src/replay/replay-internal.c: In function ‘replay_put_array’:
> /tmp/qemu-test/src/replay/replay-internal.c:68: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
>   CC    slirp/ip_icmp.o
>   CC    slirp/ip6_icmp.o
>   CC    slirp/ip6_input.o
>   CC    slirp/ip6_output.o
>   CC    slirp/ip_input.o
>   CC    slirp/ip_output.o
>   CC    slirp/dnssearch.o
>   CC    slirp/dhcpv6.o
>   CC    slirp/slirp.o
>   CC    slirp/mbuf.o
>   CC    slirp/misc.o
>   CC    slirp/sbuf.o
>   CC    slirp/socket.o
>   CC    slirp/tcp_input.o
>   CC    slirp/tcp_output.o
>   CC    slirp/tcp_subr.o
>   CC    slirp/tcp_timer.o
>   CC    slirp/udp.o
>   CC    slirp/udp6.o
>   CC    slirp/bootp.o
> /tmp/qemu-test/src/slirp/tcp_input.c: In function ‘tcp_input’:
> /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_p’ may be used uninitialized in this function
> /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_len’ may be used uninitialized in this function
> /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_tos’ may be used uninitialized in this function
> /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_id’ may be used uninitialized in this function
> /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_off’ may be used uninitialized in this function
> /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_ttl’ may be used uninitialized in this function
> /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_sum’ may be used uninitialized in this function
> /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_src.s_addr’ may be used uninitialized in this function
> /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_dst.s_addr’ may be used uninitialized in this function
> /tmp/qemu-test/src/slirp/tcp_input.c:220: warning: ‘save_ip6.ip_nh’ may be used uninitialized in this function
>   CC    slirp/tftp.o
>   CC    slirp/arp_table.o
>   CC    slirp/ndp_table.o
>   CC    ui/keymaps.o
>   CC    ui/console.o
>   CC    ui/cursor.o
>   CC    ui/qemu-pixman.o
>   CC    ui/input.o
>   CC    ui/input-keymap.o
>   CC    ui/input-legacy.o
>   CC    ui/input-linux.o
>   CC    ui/sdl.o
>   CC    ui/sdl_zoom.o
>   CC    ui/x_keymap.o
>   CC    ui/vnc.o
>   CC    ui/vnc-enc-zlib.o
>   CC    ui/vnc-enc-hextile.o
>   CC    ui/vnc-enc-tight.o
>   CC    ui/vnc-palette.o
>   CC    ui/vnc-enc-zrle.o
>   CC    ui/vnc-auth-vencrypt.o
>   CC    ui/vnc-ws.o
>   CC    ui/vnc-jobs.o
>   LINK  tests/qemu-iotests/socket_scm_helper
>   CC    qga/commands.o
>   CC    qga/guest-agent-command-state.o
>   CC    qga/main.o
>   CC    qga/commands-posix.o
>   CC    qga/channel-posix.o
>   CC    qga/qapi-generated/qga-qapi-types.o
>   CC    qga/qapi-generated/qga-qapi-visit.o
>   CC    qga/qapi-generated/qga-qmp-marshal.o
>   CC    qmp-introspect.o
>   CC    qapi-types.o
>   CC    qapi-visit.o
>   CC    qapi-event.o
>   AR    libqemustub.a
>   CC    qemu-img.o
>   CC    qmp-marshal.o
>   CC    trace/generated-events.o
>   AS    optionrom/multiboot.o
>   AS    optionrom/linuxboot.o
>   CC    optionrom/linuxboot_dma.o
>   AS    optionrom/kvmvapic.o
> cc: unrecognized option '-no-integrated-as'
> cc: unrecognized option '-no-integrated-as'
>   Building optionrom/linuxboot_dma.img
>   Building optionrom/linuxboot_dma.raw
>   Building optionrom/multiboot.img
>   Building optionrom/linuxboot.img
>   Building optionrom/kvmvapic.img
>   Building optionrom/multiboot.raw
>   Building optionrom/linuxboot.raw
>   AR    libqemuutil.a
>   Building optionrom/kvmvapic.raw
>   Signing optionrom/linuxboot_dma.bin
>   Signing optionrom/multiboot.bin
>   Signing optionrom/linuxboot.bin
>   Signing optionrom/kvmvapic.bin
>   LINK  qemu-ga
>   LINK  ivshmem-client
>   LINK  ivshmem-server
>   LINK  qemu-nbd
>   LINK  qemu-img
>   LINK  qemu-io
>   LINK  qemu-bridge-helper
>   GEN   x86_64-softmmu/hmp-commands.h
>   GEN   x86_64-softmmu/hmp-commands-info.h
>   GEN   x86_64-softmmu/qmp-commands-old.h
>   GEN   x86_64-softmmu/config-target.h
>   GEN   aarch64-softmmu/hmp-commands.h
>   GEN   aarch64-softmmu/hmp-commands-info.h
>   GEN   aarch64-softmmu/qmp-commands-old.h
>   GEN   aarch64-softmmu/config-target.h
>   CC    x86_64-softmmu/translate-all.o
>   CC    x86_64-softmmu/exec.o
>   CC    x86_64-softmmu/cpu-exec.o
>   CC    x86_64-softmmu/translate-common.o
>   CC    x86_64-softmmu/cpu-exec-common.o
>   CC    x86_64-softmmu/tcg/tcg.o
>   CC    x86_64-softmmu/tcg/tcg-op.o
>   CC    x86_64-softmmu/tcg/optimize.o
>   CC    x86_64-softmmu/tcg/tcg-common.o
>   CC    x86_64-softmmu/fpu/softfloat.o
>   CC    x86_64-softmmu/disas.o
>   CC    x86_64-softmmu/arch_init.o
>   CC    x86_64-softmmu/cpus.o
>   CC    x86_64-softmmu/monitor.o
>   CC    x86_64-softmmu/gdbstub.o
>   CC    x86_64-softmmu/balloon.o
>   CC    x86_64-softmmu/ioport.o
>   CC    x86_64-softmmu/numa.o
>   CC    x86_64-softmmu/qtest.o
>   CC    x86_64-softmmu/bootdevice.o
>   CC    x86_64-softmmu/kvm-all.o
>   CC    x86_64-softmmu/memory.o
>   CC    x86_64-softmmu/cputlb.o
>   CC    x86_64-softmmu/memory_mapping.o
>   CC    x86_64-softmmu/dump.o
>   CC    x86_64-softmmu/migration/ram.o
>   CC    x86_64-softmmu/migration/savevm.o
>   CC    x86_64-softmmu/xen-common-stub.o
>   CC    aarch64-softmmu/exec.o
>   CC    aarch64-softmmu/translate-all.o
>   CC    aarch64-softmmu/cpu-exec.o
>   CC    aarch64-softmmu/translate-common.o
>   CC    x86_64-softmmu/xen-hvm-stub.o
>   CC    aarch64-softmmu/cpu-exec-common.o
>   CC    x86_64-softmmu/hw/acpi/nvdimm.o
>   CC    x86_64-softmmu/hw/block/virtio-blk.o
>   CC    aarch64-softmmu/tcg/tcg.o
>   CC    x86_64-softmmu/hw/block/dataplane/virtio-blk.o
>   CC    x86_64-softmmu/hw/char/virtio-serial-bus.o
>   CC    aarch64-softmmu/tcg/tcg-op.o
>   CC    x86_64-softmmu/hw/core/nmi.o
>   CC    x86_64-softmmu/hw/cpu/core.o
>   CC    aarch64-softmmu/tcg/optimize.o
>   CC    aarch64-softmmu/tcg/tcg-common.o
>   CC    x86_64-softmmu/hw/display/vga.o
>   CC    aarch64-softmmu/fpu/softfloat.o
>   CC    aarch64-softmmu/disas.o
>   GEN   aarch64-softmmu/gdbstub-xml.c
>   CC    x86_64-softmmu/hw/display/virtio-gpu.o
>   CC    x86_64-softmmu/hw/display/virtio-gpu-3d.o
>   CC    aarch64-softmmu/kvm-stub.o
>   CC    aarch64-softmmu/arch_init.o
>   CC    aarch64-softmmu/cpus.o
>   CC    aarch64-softmmu/monitor.o
>   CC    x86_64-softmmu/hw/display/virtio-gpu-pci.o
>   CC    aarch64-softmmu/gdbstub.o
>   CC    aarch64-softmmu/balloon.o
>   CC    aarch64-softmmu/ioport.o
>   CC    aarch64-softmmu/numa.o
>   CC    x86_64-softmmu/hw/display/virtio-vga.o
>   CC    x86_64-softmmu/hw/intc/apic.o
>   CC    x86_64-softmmu/hw/intc/apic_common.o
>   CC    x86_64-softmmu/hw/intc/ioapic.o
>   CC    x86_64-softmmu/hw/isa/lpc_ich9.o
>   CC    x86_64-softmmu/hw/misc/vmport.o
>   CC    x86_64-softmmu/hw/misc/ivshmem.o
>   CC    x86_64-softmmu/hw/misc/pvpanic.o
>   CC    x86_64-softmmu/hw/misc/edu.o
>   CC    x86_64-softmmu/hw/misc/hyperv_testdev.o
>   CC    x86_64-softmmu/hw/net/virtio-net.o
>   CC    x86_64-softmmu/hw/net/vhost_net.o
>   CC    aarch64-softmmu/qtest.o
>   CC    x86_64-softmmu/hw/scsi/virtio-scsi.o
>   CC    x86_64-softmmu/hw/scsi/virtio-scsi-dataplane.o
>   CC    x86_64-softmmu/hw/scsi/vhost-scsi.o
>   CC    x86_64-softmmu/hw/timer/mc146818rtc.o
>   CC    x86_64-softmmu/hw/vfio/common.o
>   CC    x86_64-softmmu/hw/vfio/pci.o
>   CC    aarch64-softmmu/bootdevice.o
>   CC    x86_64-softmmu/hw/vfio/pci-quirks.o
>   CC    x86_64-softmmu/hw/vfio/platform.o
>   CC    x86_64-softmmu/hw/vfio/calxeda-xgmac.o
>   CC    x86_64-softmmu/hw/vfio/amd-xgbe.o
>   CC    x86_64-softmmu/hw/vfio/spapr.o
>   CC    aarch64-softmmu/memory.o
>   CC    x86_64-softmmu/hw/virtio/virtio.o
>   CC    x86_64-softmmu/hw/virtio/virtio-balloon.o
>   CC    aarch64-softmmu/cputlb.o
>   CC    x86_64-softmmu/hw/virtio/vhost.o
>   CC    x86_64-softmmu/hw/virtio/vhost-backend.o
>   CC    x86_64-softmmu/hw/virtio/vhost-user.o
>   CC    x86_64-softmmu/hw/i386/multiboot.o
>   CC    aarch64-softmmu/memory_mapping.o
>   CC    x86_64-softmmu/hw/i386/pc.o
>   CC    aarch64-softmmu/dump.o
>   CC    x86_64-softmmu/hw/i386/pc_piix.o
>   CC    aarch64-softmmu/migration/ram.o
>   CC    aarch64-softmmu/migration/savevm.o
>   CC    x86_64-softmmu/hw/i386/pc_q35.o
>   CC    x86_64-softmmu/hw/i386/pc_sysfw.o
>   CC    aarch64-softmmu/xen-common-stub.o
>   CC    aarch64-softmmu/xen-hvm-stub.o
> /tmp/qemu-test/src/hw/i386/pc_piix.c: In function ‘igd_passthrough_isa_bridge_create’:
> /tmp/qemu-test/src/hw/i386/pc_piix.c:1037: warning: ‘pch_rev_id’ may be used uninitialized in this function
>   CC    x86_64-softmmu/hw/i386/x86-iommu.o
>   CC    x86_64-softmmu/hw/i386/intel_iommu.o
>   CC    aarch64-softmmu/hw/block/virtio-blk.o
>   CC    aarch64-softmmu/hw/block/dataplane/virtio-blk.o
>   CC    x86_64-softmmu/hw/i386/kvmvapic.o
>   CC    aarch64-softmmu/hw/char/exynos4210_uart.o
>   CC    aarch64-softmmu/hw/char/omap_uart.o
>   CC    aarch64-softmmu/hw/char/digic-uart.o
>   CC    aarch64-softmmu/hw/char/stm32f2xx_usart.o
>   CC    x86_64-softmmu/hw/i386/acpi-build.o
>   CC    aarch64-softmmu/hw/char/bcm2835_aux.o
>   CC    aarch64-softmmu/hw/char/virtio-serial-bus.o
>   CC    x86_64-softmmu/hw/i386/pci-assign-load-rom.o
>   CC    aarch64-softmmu/hw/core/nmi.o
>   CC    aarch64-softmmu/hw/cpu/arm11mpcore.o
>   CC    x86_64-softmmu/hw/i386/kvm/clock.o
>   CC    aarch64-softmmu/hw/cpu/realview_mpcore.o
>   CC    aarch64-softmmu/hw/cpu/a9mpcore.o
>   CC    x86_64-softmmu/hw/i386/kvm/apic.o
>   CC    aarch64-softmmu/hw/cpu/a15mpcore.o
>   CC    x86_64-softmmu/hw/i386/kvm/i8259.o
>   CC    aarch64-softmmu/hw/cpu/core.o
>   CC    aarch64-softmmu/hw/display/omap_dss.o
> /tmp/qemu-test/src/hw/i386/acpi-build.c: In function ‘build_append_pci_bus_devices’:
> /tmp/qemu-test/src/hw/i386/acpi-build.c:471: warning: ‘notify_method’ may be used uninitialized in this function
>   CC    x86_64-softmmu/hw/i386/kvm/ioapic.o
>   CC    aarch64-softmmu/hw/display/omap_lcdc.o
>   CC    x86_64-softmmu/hw/i386/kvm/i8254.o
>   CC    x86_64-softmmu/hw/i386/kvm/pci-assign.o
>   CC    x86_64-softmmu/target-i386/translate.o
>   CC    aarch64-softmmu/hw/display/pxa2xx_lcd.o
>   CC    aarch64-softmmu/hw/display/bcm2835_fb.o
>   CC    aarch64-softmmu/hw/display/vga.o
>   CC    aarch64-softmmu/hw/display/virtio-gpu.o
>   CC    aarch64-softmmu/hw/display/virtio-gpu-3d.o
>   CC    aarch64-softmmu/hw/display/virtio-gpu-pci.o
>   CC    x86_64-softmmu/target-i386/helper.o
>   CC    x86_64-softmmu/target-i386/cpu.o
>   CC    x86_64-softmmu/target-i386/bpt_helper.o
>   CC    x86_64-softmmu/target-i386/excp_helper.o
>   CC    aarch64-softmmu/hw/display/dpcd.o
>   CC    aarch64-softmmu/hw/display/xlnx_dp.o
>   CC    x86_64-softmmu/target-i386/fpu_helper.o
>   CC    aarch64-softmmu/hw/dma/xlnx_dpdma.o
>   CC    x86_64-softmmu/target-i386/cc_helper.o
>   CC    aarch64-softmmu/hw/dma/omap_dma.o
>   CC    x86_64-softmmu/target-i386/int_helper.o
>   CC    x86_64-softmmu/target-i386/svm_helper.o
>   CC    aarch64-softmmu/hw/dma/soc_dma.o
>   CC    x86_64-softmmu/target-i386/smm_helper.o
>   CC    x86_64-softmmu/target-i386/misc_helper.o
>   CC    aarch64-softmmu/hw/dma/pxa2xx_dma.o
>   CC    aarch64-softmmu/hw/dma/bcm2835_dma.o
>   CC    x86_64-softmmu/target-i386/mem_helper.o
>   CC    aarch64-softmmu/hw/gpio/omap_gpio.o
>   CC    aarch64-softmmu/hw/gpio/imx_gpio.o
>   CC    x86_64-softmmu/target-i386/seg_helper.o
>   CC    aarch64-softmmu/hw/i2c/omap_i2c.o
>   CC    x86_64-softmmu/target-i386/mpx_helper.o
>   CC    aarch64-softmmu/hw/input/pxa2xx_keypad.o
>   CC    x86_64-softmmu/target-i386/gdbstub.o
>   CC    aarch64-softmmu/hw/input/tsc210x.o
>   CC    x86_64-softmmu/target-i386/machine.o
>   CC    x86_64-softmmu/target-i386/arch_memory_mapping.o
>   CC    x86_64-softmmu/target-i386/arch_dump.o
>   CC    x86_64-softmmu/target-i386/monitor.o
>   CC    aarch64-softmmu/hw/intc/armv7m_nvic.o
>   CC    x86_64-softmmu/target-i386/kvm.o
>   CC    x86_64-softmmu/target-i386/hyperv.o
>   CC    aarch64-softmmu/hw/intc/exynos4210_gic.o
>   CC    aarch64-softmmu/hw/intc/exynos4210_combiner.o
>   GEN   trace/generated-helpers.c
>   CC    aarch64-softmmu/hw/intc/omap_intc.o
>   CC    x86_64-softmmu/trace/control-target.o
>   CC    aarch64-softmmu/hw/intc/bcm2835_ic.o
>   CC    aarch64-softmmu/hw/intc/bcm2836_control.o
>   CC    aarch64-softmmu/hw/intc/allwinner-a10-pic.o
>   CC    aarch64-softmmu/hw/intc/aspeed_vic.o
>   CC    aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
>   CC    aarch64-softmmu/hw/misc/ivshmem.o
>   CC    aarch64-softmmu/hw/misc/arm_sysctl.o
>   CC    aarch64-softmmu/hw/misc/cbus.o
>   CC    aarch64-softmmu/hw/misc/exynos4210_pmu.o
>   CC    aarch64-softmmu/hw/misc/imx_ccm.o
>   CC    aarch64-softmmu/hw/misc/imx31_ccm.o
>   CC    aarch64-softmmu/hw/misc/imx25_ccm.o
>   CC    aarch64-softmmu/hw/misc/imx6_ccm.o
>   CC    aarch64-softmmu/hw/misc/imx6_src.o
>   CC    aarch64-softmmu/hw/misc/mst_fpga.o
>   CC    aarch64-softmmu/hw/misc/omap_clk.o
>   CC    aarch64-softmmu/hw/misc/omap_gpmc.o
>   CC    aarch64-softmmu/hw/misc/omap_l4.o
>   CC    aarch64-softmmu/hw/misc/omap_sdrc.o
>   CC    aarch64-softmmu/hw/misc/omap_tap.o
>   CC    x86_64-softmmu/trace/generated-helpers.o
>   CC    aarch64-softmmu/hw/misc/bcm2835_mbox.o
>   CC    aarch64-softmmu/hw/misc/bcm2835_property.o
>   CC    aarch64-softmmu/hw/misc/zynq_slcr.o
>   CC    aarch64-softmmu/hw/misc/zynq-xadc.o
>   CC    aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
>   CC    aarch64-softmmu/hw/misc/edu.o
>   CC    aarch64-softmmu/hw/misc/auxbus.o
>   CC    aarch64-softmmu/hw/misc/aspeed_scu.o
>   CC    aarch64-softmmu/hw/net/virtio-net.o
>   CC    aarch64-softmmu/hw/net/vhost_net.o
>   CC    aarch64-softmmu/hw/pcmcia/pxa2xx.o
>   CC    aarch64-softmmu/hw/scsi/virtio-scsi.o
>   CC    aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
>   CC    aarch64-softmmu/hw/scsi/vhost-scsi.o
>   CC    aarch64-softmmu/hw/sd/omap_mmc.o
>   CC    aarch64-softmmu/hw/sd/pxa2xx_mmci.o
>   CC    aarch64-softmmu/hw/ssi/omap_spi.o
>   CC    aarch64-softmmu/hw/ssi/imx_spi.o
>   CC    aarch64-softmmu/hw/timer/exynos4210_mct.o
>   CC    aarch64-softmmu/hw/timer/exynos4210_pwm.o
>   CC    aarch64-softmmu/hw/timer/exynos4210_rtc.o
>   CC    aarch64-softmmu/hw/timer/omap_gptimer.o
>   CC    aarch64-softmmu/hw/timer/omap_synctimer.o
>   CC    aarch64-softmmu/hw/timer/pxa2xx_timer.o
>   CC    aarch64-softmmu/hw/timer/digic-timer.o
>   CC    aarch64-softmmu/hw/timer/allwinner-a10-pit.o
>   CC    aarch64-softmmu/hw/usb/tusb6010.o
>   CC    aarch64-softmmu/hw/vfio/common.o
>   CC    aarch64-softmmu/hw/vfio/pci.o
>   CC    aarch64-softmmu/hw/vfio/pci-quirks.o
>   CC    aarch64-softmmu/hw/vfio/platform.o
>   LINK  x86_64-softmmu/qemu-system-x86_64
>   CC    aarch64-softmmu/hw/vfio/calxeda-xgmac.o
>   CC    aarch64-softmmu/hw/vfio/amd-xgbe.o
>   CC    aarch64-softmmu/hw/vfio/spapr.o
>   CC    aarch64-softmmu/hw/virtio/virtio.o
>   CC    aarch64-softmmu/hw/virtio/virtio-balloon.o
>   CC    aarch64-softmmu/hw/virtio/vhost.o
>   CC    aarch64-softmmu/hw/virtio/vhost-backend.o
>   CC    aarch64-softmmu/hw/virtio/vhost-user.o
>   CC    aarch64-softmmu/hw/arm/boot.o
>   CC    aarch64-softmmu/hw/arm/collie.o
>   CC    aarch64-softmmu/hw/arm/exynos4_boards.o
>   CC    aarch64-softmmu/hw/arm/gumstix.o
>   CC    aarch64-softmmu/hw/arm/highbank.o
>   CC    aarch64-softmmu/hw/arm/digic_boards.o
>   CC    aarch64-softmmu/hw/arm/integratorcp.o
>   CC    aarch64-softmmu/hw/arm/mainstone.o
>   CC    aarch64-softmmu/hw/arm/musicpal.o
>   CC    aarch64-softmmu/hw/arm/nseries.o
>   CC    aarch64-softmmu/hw/arm/omap_sx1.o
>   CC    aarch64-softmmu/hw/arm/palm.o
>   CC    aarch64-softmmu/hw/arm/realview.o
>   CC    aarch64-softmmu/hw/arm/spitz.o
>   CC    aarch64-softmmu/hw/arm/stellaris.o
>   CC    aarch64-softmmu/hw/arm/tosa.o
>   CC    aarch64-softmmu/hw/arm/versatilepb.o
>   CC    aarch64-softmmu/hw/arm/vexpress.o
>   CC    aarch64-softmmu/hw/arm/virt.o
>   CC    aarch64-softmmu/hw/arm/xilinx_zynq.o
>   CC    aarch64-softmmu/hw/arm/z2.o
>   CC    aarch64-softmmu/hw/arm/virt-acpi-build.o
>   CC    aarch64-softmmu/hw/arm/netduino2.o
>   CC    aarch64-softmmu/hw/arm/sysbus-fdt.o
>   CC    aarch64-softmmu/hw/arm/armv7m.o
>   CC    aarch64-softmmu/hw/arm/exynos4210.o
>   CC    aarch64-softmmu/hw/arm/pxa2xx.o
>   CC    aarch64-softmmu/hw/arm/pxa2xx_gpio.o
>   CC    aarch64-softmmu/hw/arm/pxa2xx_pic.o
>   CC    aarch64-softmmu/hw/arm/digic.o
>   CC    aarch64-softmmu/hw/arm/omap1.o
>   CC    aarch64-softmmu/hw/arm/omap2.o
>   CC    aarch64-softmmu/hw/arm/strongarm.o
>   CC    aarch64-softmmu/hw/arm/allwinner-a10.o
>   CC    aarch64-softmmu/hw/arm/cubieboard.o
>   CC    aarch64-softmmu/hw/arm/bcm2835_peripherals.o
>   CC    aarch64-softmmu/hw/arm/bcm2836.o
>   CC    aarch64-softmmu/hw/arm/raspi.o
>   CC    aarch64-softmmu/hw/arm/stm32f205_soc.o
>   CC    aarch64-softmmu/hw/arm/xlnx-zynqmp.o
>   CC    aarch64-softmmu/hw/arm/xlnx-ep108.o
>   CC    aarch64-softmmu/hw/arm/fsl-imx25.o
>   CC    aarch64-softmmu/hw/arm/imx25_pdk.o
>   CC    aarch64-softmmu/hw/arm/fsl-imx31.o
>   CC    aarch64-softmmu/hw/arm/kzm.o
>   CC    aarch64-softmmu/hw/arm/fsl-imx6.o
>   CC    aarch64-softmmu/hw/arm/sabrelite.o
>   CC    aarch64-softmmu/hw/arm/ast2400.o
>   CC    aarch64-softmmu/hw/arm/palmetto-bmc.o
>   CC    aarch64-softmmu/target-arm/arm-semi.o
>   CC    aarch64-softmmu/target-arm/machine.o
>   CC    aarch64-softmmu/target-arm/psci.o
>   CC    aarch64-softmmu/target-arm/arch_dump.o
>   CC    aarch64-softmmu/target-arm/monitor.o
>   CC    aarch64-softmmu/target-arm/kvm-stub.o
>   CC    aarch64-softmmu/target-arm/translate.o
>   CC    aarch64-softmmu/target-arm/op_helper.o
>   CC    aarch64-softmmu/target-arm/helper.o
>   CC    aarch64-softmmu/target-arm/cpu.o
>   CC    aarch64-softmmu/target-arm/neon_helper.o
>   CC    aarch64-softmmu/target-arm/iwmmxt_helper.o
>   CC    aarch64-softmmu/target-arm/gdbstub.o
>   CC    aarch64-softmmu/target-arm/cpu64.o
>   CC    aarch64-softmmu/target-arm/translate-a64.o
>   CC    aarch64-softmmu/target-arm/helper-a64.o
> /tmp/qemu-test/src/target-arm/translate-a64.c: In function ‘handle_shri_with_rndacc’:
> /tmp/qemu-test/src/target-arm/translate-a64.c:6308: warning: ‘tcg_src_hi’ may be used uninitialized in this function
> /tmp/qemu-test/src/target-arm/translate-a64.c: In function ‘disas_simd_scalar_two_reg_misc’:
> /tmp/qemu-test/src/target-arm/translate-a64.c:8035: warning: ‘rmode’ may be used uninitialized in this function
>   CC    aarch64-softmmu/target-arm/gdbstub64.o
>   CC    aarch64-softmmu/target-arm/crypto_helper.o
>   CC    aarch64-softmmu/target-arm/arm-powerctl.o
>   GEN   trace/generated-helpers.c
>   CC    aarch64-softmmu/trace/control-target.o
>   CC    aarch64-softmmu/gdbstub-xml.o
>   CC    aarch64-softmmu/trace/generated-helpers.o
>   LINK  aarch64-softmmu/qemu-system-aarch64
>   TEST  tests/qapi-schema/alternate-any.out
>   TEST  tests/qapi-schema/alternate-array.out
>   TEST  tests/qapi-schema/alternate-base.out
>   TEST  tests/qapi-schema/alternate-clash.out
>   TEST  tests/qapi-schema/alternate-conflict-dict.out
>   TEST  tests/qapi-schema/alternate-conflict-string.out
>   TEST  tests/qapi-schema/alternate-empty.out
>   TEST  tests/qapi-schema/alternate-nested.out
>   TEST  tests/qapi-schema/alternate-unknown.out
>   TEST  tests/qapi-schema/args-alternate.out
>   TEST  tests/qapi-schema/args-any.out
>   TEST  tests/qapi-schema/args-array-empty.out
>   TEST  tests/qapi-schema/args-array-unknown.out
>   TEST  tests/qapi-schema/args-bad-boxed.out
>   TEST  tests/qapi-schema/args-boxed-anon.out
>   TEST  tests/qapi-schema/args-boxed-empty.out
>   TEST  tests/qapi-schema/args-boxed-string.out
>   TEST  tests/qapi-schema/args-int.out
>   TEST  tests/qapi-schema/args-invalid.out
>   TEST  tests/qapi-schema/args-member-array-bad.out
>   TEST  tests/qapi-schema/args-member-case.out
>   TEST  tests/qapi-schema/args-member-unknown.out
>   TEST  tests/qapi-schema/args-name-clash.out
>   TEST  tests/qapi-schema/args-union.out
>   TEST  tests/qapi-schema/args-unknown.out
>   TEST  tests/qapi-schema/bad-base.out
>   TEST  tests/qapi-schema/bad-data.out
>   TEST  tests/qapi-schema/bad-ident.out
>   TEST  tests/qapi-schema/bad-type-bool.out
>   TEST  tests/qapi-schema/bad-type-dict.out
>   TEST  tests/qapi-schema/bad-type-int.out
>   TEST  tests/qapi-schema/base-cycle-direct.out
>   TEST  tests/qapi-schema/base-cycle-indirect.out
>   TEST  tests/qapi-schema/command-int.out
>   TEST  tests/qapi-schema/comments.out
>   TEST  tests/qapi-schema/double-data.out
>   TEST  tests/qapi-schema/double-type.out
>   TEST  tests/qapi-schema/duplicate-key.out
>   TEST  tests/qapi-schema/empty.out
>   TEST  tests/qapi-schema/enum-bad-name.out
>   TEST  tests/qapi-schema/enum-bad-prefix.out
>   TEST  tests/qapi-schema/enum-clash-member.out
>   TEST  tests/qapi-schema/enum-dict-member.out
>   TEST  tests/qapi-schema/enum-int-member.out
>   TEST  tests/qapi-schema/enum-member-case.out
>   TEST  tests/qapi-schema/enum-missing-data.out
>   TEST  tests/qapi-schema/enum-wrong-data.out
>   TEST  tests/qapi-schema/escape-outside-string.out
>   TEST  tests/qapi-schema/escape-too-big.out
>   TEST  tests/qapi-schema/escape-too-short.out
>   TEST  tests/qapi-schema/event-boxed-empty.out
>   TEST  tests/qapi-schema/event-case.out
>   TEST  tests/qapi-schema/event-nest-struct.out
>   TEST  tests/qapi-schema/flat-union-array-branch.out
>   TEST  tests/qapi-schema/flat-union-bad-base.out
>   TEST  tests/qapi-schema/flat-union-bad-discriminator.out
>   TEST  tests/qapi-schema/flat-union-base-any.out
>   TEST  tests/qapi-schema/flat-union-base-union.out
>   TEST  tests/qapi-schema/flat-union-empty.out
>   TEST  tests/qapi-schema/flat-union-clash-member.out
>   TEST  tests/qapi-schema/flat-union-incomplete-branch.out
>   TEST  tests/qapi-schema/flat-union-inline.out
>   TEST  tests/qapi-schema/flat-union-int-branch.out
>   TEST  tests/qapi-schema/flat-union-invalid-branch-key.out
>   TEST  tests/qapi-schema/flat-union-invalid-discriminator.out
>   TEST  tests/qapi-schema/flat-union-no-base.out
>   TEST  tests/qapi-schema/flat-union-optional-discriminator.out
>   TEST  tests/qapi-schema/flat-union-string-discriminator.out
>   TEST  tests/qapi-schema/funny-char.out
>   TEST  tests/qapi-schema/ident-with-escape.out
>   TEST  tests/qapi-schema/include-before-err.out
>   TEST  tests/qapi-schema/include-cycle.out
>   TEST  tests/qapi-schema/include-format-err.out
>   TEST  tests/qapi-schema/include-nested-err.out
>   TEST  tests/qapi-schema/include-no-file.out
>   TEST  tests/qapi-schema/include-non-file.out
>   TEST  tests/qapi-schema/include-relpath.out
>   TEST  tests/qapi-schema/include-repetition.out
>   TEST  tests/qapi-schema/include-self-cycle.out
>   TEST  tests/qapi-schema/include-simple.out
>   TEST  tests/qapi-schema/indented-expr.out
>   TEST  tests/qapi-schema/leading-comma-list.out
>   TEST  tests/qapi-schema/leading-comma-object.out
>   TEST  tests/qapi-schema/missing-colon.out
>   TEST  tests/qapi-schema/missing-comma-list.out
>   TEST  tests/qapi-schema/missing-comma-object.out
>   TEST  tests/qapi-schema/missing-type.out
>   TEST  tests/qapi-schema/nested-struct-data.out
>   TEST  tests/qapi-schema/non-objects.out
>   TEST  tests/qapi-schema/qapi-schema-test.out
>   TEST  tests/qapi-schema/quoted-structural-chars.out
>   TEST  tests/qapi-schema/redefined-builtin.out
>   TEST  tests/qapi-schema/redefined-command.out
>   TEST  tests/qapi-schema/redefined-event.out
>   TEST  tests/qapi-schema/redefined-type.out
>   TEST  tests/qapi-schema/reserved-command-q.out
>   TEST  tests/qapi-schema/reserved-enum-q.out
>   TEST  tests/qapi-schema/reserved-member-has.out
>   TEST  tests/qapi-schema/reserved-member-q.out
>   TEST  tests/qapi-schema/reserved-member-u.out
>   TEST  tests/qapi-schema/reserved-member-underscore.out
>   TEST  tests/qapi-schema/reserved-type-kind.out
>   TEST  tests/qapi-schema/reserved-type-list.out
>   TEST  tests/qapi-schema/returns-alternate.out
>   TEST  tests/qapi-schema/returns-array-bad.out
>   TEST  tests/qapi-schema/returns-dict.out
>   TEST  tests/qapi-schema/returns-unknown.out
>   TEST  tests/qapi-schema/returns-whitelist.out
>   TEST  tests/qapi-schema/struct-base-clash-deep.out
>   TEST  tests/qapi-schema/struct-base-clash.out
>   TEST  tests/qapi-schema/struct-data-invalid.out
>   TEST  tests/qapi-schema/struct-member-invalid.out
>   TEST  tests/qapi-schema/trailing-comma-list.out
>   TEST  tests/qapi-schema/trailing-comma-object.out
>   TEST  tests/qapi-schema/type-bypass-bad-gen.out
>   TEST  tests/qapi-schema/unclosed-list.out
>   TEST  tests/qapi-schema/unclosed-object.out
>   TEST  tests/qapi-schema/unclosed-string.out
>   TEST  tests/qapi-schema/unicode-str.out
>   TEST  tests/qapi-schema/union-base-no-discriminator.out
>   TEST  tests/qapi-schema/union-branch-case.out
>   TEST  tests/qapi-schema/union-clash-branches.out
>   TEST  tests/qapi-schema/union-empty.out
>   TEST  tests/qapi-schema/union-invalid-base.out
>   TEST  tests/qapi-schema/union-optional-branch.out
>   TEST  tests/qapi-schema/union-unknown.out
>   TEST  tests/qapi-schema/unknown-escape.out
>   TEST  tests/qapi-schema/unknown-expr-key.out
>   CC    tests/check-qdict.o
>   CC    tests/check-qfloat.o
>   CC    tests/check-qint.o
>   CC    tests/check-qstring.o
>   CC    tests/check-qlist.o
>   CC    tests/check-qnull.o
>   CC    tests/check-qjson.o
>   CC    tests/test-qmp-output-visitor.o
>   GEN   tests/test-qapi-visit.c
>   GEN   tests/test-qapi-types.c
>   GEN   tests/test-qapi-event.c
>   GEN   tests/test-qmp-introspect.c
>   CC    tests/test-clone-visitor.o
>   CC    tests/test-qmp-input-visitor.o
>   CC    tests/test-qmp-input-strict.o
>   CC    tests/test-qmp-commands.o
>   GEN   tests/test-qmp-marshal.c
>   CC    tests/test-string-input-visitor.o
>   CC    tests/test-string-output-visitor.o
>   CC    tests/test-qmp-event.o
>   CC    tests/test-opts-visitor.o
>   CC    tests/test-coroutine.o
>   CC    tests/test-visitor-serialization.o
>   CC    tests/test-iov.o
>   CC    tests/test-aio.o
>   CC    tests/test-rfifolock.o
>   CC    tests/test-throttle.o
>   CC    tests/test-thread-pool.o
>   CC    tests/test-hbitmap.o
>   CC    tests/test-blockjob.o
>   CC    tests/test-blockjob-txn.o
>   CC    tests/test-x86-cpuid.o
>   CC    tests/test-xbzrle.o
>   CC    tests/test-vmstate.o
>   CC    tests/test-cutils.o
>   CC    tests/test-mul64.o
>   CC    tests/test-int128.o
>   CC    tests/rcutorture.o
>   CC    tests/test-rcu-list.o
>   CC    tests/test-qdist.o
>   CC    tests/test-qht.o
>   CC    tests/test-qht-par.o
>   CC    tests/qht-bench.o
> /tmp/qemu-test/src/tests/test-int128.c:180: warning: ‘__noclone__’ attribute directive ignored
>   CC    tests/test-bitops.o
>   CC    tests/check-qom-interface.o
>   CC    tests/check-qom-proplist.o
>   CC    tests/test-qemu-opts.o
>   CC    tests/test-write-threshold.o
>   CC    tests/test-crypto-hash.o
>   CC    tests/test-crypto-cipher.o
>   CC    tests/test-crypto-secret.o
>   CC    tests/test-qga.o
>   CC    tests/libqtest.o
>   CC    tests/test-timed-average.o
>   CC    tests/test-io-task.o
>   CC    tests/test-io-channel-socket.o
>   CC    tests/io-channel-helpers.o
>   CC    tests/test-io-channel-file.o
>   CC    tests/test-io-channel-command.o
>   CC    tests/test-io-channel-buffer.o
>   CC    tests/test-base64.o
>   CC    tests/test-crypto-ivgen.o
>   CC    tests/test-crypto-afsplit.o
>   CC    tests/test-crypto-xts.o
>   CC    tests/test-crypto-block.o
>   CC    tests/test-logging.o
>   CC    tests/vhost-user-test.o
>   CC    tests/endianness-test.o
>   CC    tests/fdc-test.o
>   CC    tests/ide-test.o
>   CC    tests/libqos/pci.o
>   CC    tests/libqos/fw_cfg.o
>   CC    tests/libqos/malloc.o
>   CC    tests/libqos/i2c.o
>   CC    tests/libqos/libqos.o
>   CC    tests/libqos/pci-pc.o
> /tmp/qemu-test/src/tests/ide-test.c: In function ‘cdrom_pio_impl’:
> /tmp/qemu-test/src/tests/ide-test.c:739: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
> /tmp/qemu-test/src/tests/ide-test.c: In function ‘test_cdrom_dma’:
> /tmp/qemu-test/src/tests/ide-test.c:832: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
>   CC    tests/libqos/malloc-pc.o
>   CC    tests/libqos/libqos-pc.o
>   CC    tests/libqos/ahci.o
>   CC    tests/ahci-test.o
>   CC    tests/hd-geo-test.o
>   CC    tests/boot-order-test.o
>   CC    tests/bios-tables-test.o
>   CC    tests/boot-sector.o
>   CC    tests/pxe-test.o
>   CC    tests/rtc-test.o
>   CC    tests/ipmi-kcs-test.o
>   CC    tests/ipmi-bt-test.o
>   CC    tests/i440fx-test.o
>   CC    tests/fw_cfg-test.o
> /tmp/qemu-test/src/tests/boot-sector.c: In function ‘boot_sector_init’:
> /tmp/qemu-test/src/tests/boot-sector.c:80: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
>   CC    tests/drive_del-test.o
>   CC    tests/wdt_ib700-test.o
>   CC    tests/tco-test.o
>   CC    tests/e1000-test.o
>   CC    tests/e1000e-test.o
>   CC    tests/rtl8139-test.o
>   CC    tests/pcnet-test.o
>   CC    tests/eepro100-test.o
>   CC    tests/ne2000-test.o
>   CC    tests/nvme-test.o
>   CC    tests/ac97-test.o
>   CC    tests/es1370-test.o
>   CC    tests/virtio-net-test.o
>   CC    tests/libqos/virtio.o
>   CC    tests/libqos/virtio-pci.o
>   CC    tests/libqos/virtio-mmio.o
>   CC    tests/libqos/malloc-generic.o
>   CC    tests/virtio-balloon-test.o
>   CC    tests/virtio-blk-test.o
>   CC    tests/virtio-rng-test.o
>   CC    tests/virtio-scsi-test.o
>   CC    tests/virtio-serial-test.o
>   CC    tests/virtio-console-test.o
>   CC    tests/tpci200-test.o
>   CC    tests/ipoctal232-test.o
>   CC    tests/display-vga-test.o
>   CC    tests/intel-hda-test.o
>   CC    tests/ivshmem-test.o
>   CC    tests/vmxnet3-test.o
>   CC    tests/pvpanic-test.o
>   CC    tests/i82801b11-test.o
>   CC    tests/ioh3420-test.o
>   CC    tests/usb-hcd-ohci-test.o
>   CC    tests/libqos/usb.o
>   CC    tests/usb-hcd-uhci-test.o
>   CC    tests/usb-hcd-ehci-test.o
>   CC    tests/usb-hcd-xhci-test.o
>   CC    tests/pc-cpu-test.o
>   CC    tests/q35-test.o
>   CC    tests/test-netfilter.o
>   CC    tests/test-filter-mirror.o
>   CC    tests/test-filter-redirector.o
>   CC    tests/postcopy-test.o
>   CC    tests/device-introspect-test.o
>   CC    tests/qom-test.o
>   LINK  tests/check-qdict
>   LINK  tests/check-qfloat
>   LINK  tests/check-qint
>   LINK  tests/check-qstring
>   LINK  tests/check-qlist
>   LINK  tests/check-qnull
>   LINK  tests/check-qjson
>   CC    tests/test-qapi-visit.o
>   CC    tests/test-qapi-types.o
>   CC    tests/test-qapi-event.o
>   CC    tests/test-qmp-introspect.o
>   CC    tests/test-qmp-marshal.o
>   LINK  tests/test-coroutine
>   LINK  tests/test-iov
>   LINK  tests/test-aio
>   LINK  tests/test-rfifolock
>   LINK  tests/test-throttle
>   LINK  tests/test-thread-pool
>   LINK  tests/test-hbitmap
>   LINK  tests/test-blockjob
>   LINK  tests/test-blockjob-txn
>   LINK  tests/test-x86-cpuid
>   LINK  tests/test-xbzrle
>   LINK  tests/test-vmstate
>   LINK  tests/test-cutils
>   LINK  tests/test-mul64
>   LINK  tests/test-int128
>   LINK  tests/rcutorture
>   LINK  tests/test-rcu-list
>   LINK  tests/test-qdist
>   LINK  tests/test-qht
>   LINK  tests/qht-bench
>   LINK  tests/test-bitops
>   LINK  tests/check-qom-interface
>   LINK  tests/check-qom-proplist
>   LINK  tests/test-qemu-opts
>   LINK  tests/test-write-threshold
>   LINK  tests/test-crypto-hash
>   LINK  tests/test-crypto-cipher
>   LINK  tests/test-crypto-secret
>   LINK  tests/test-qga
>   LINK  tests/test-timed-average
>   LINK  tests/test-io-task
>   LINK  tests/test-io-channel-socket
>   LINK  tests/test-io-channel-file
>   LINK  tests/test-io-channel-command
>   LINK  tests/test-io-channel-buffer
>   LINK  tests/test-base64
>   LINK  tests/test-crypto-ivgen
>   LINK  tests/test-crypto-afsplit
>   LINK  tests/test-crypto-xts
>   LINK  tests/test-crypto-block
>   LINK  tests/test-logging
>   LINK  tests/vhost-user-test
>   LINK  tests/endianness-test
>   LINK  tests/fdc-test
>   LINK  tests/ide-test
>   LINK  tests/ahci-test
>   LINK  tests/hd-geo-test
>   LINK  tests/boot-order-test
>   LINK  tests/bios-tables-test
>   LINK  tests/pxe-test
>   LINK  tests/rtc-test
>   LINK  tests/ipmi-kcs-test
>   LINK  tests/ipmi-bt-test
>   LINK  tests/i440fx-test
>   LINK  tests/fw_cfg-test
>   LINK  tests/drive_del-test
>   LINK  tests/wdt_ib700-test
>   LINK  tests/tco-test
>   LINK  tests/e1000-test
>   LINK  tests/e1000e-test
>   LINK  tests/rtl8139-test
>   LINK  tests/pcnet-test
>   LINK  tests/eepro100-test
>   LINK  tests/ne2000-test
>   LINK  tests/nvme-test
>   LINK  tests/ac97-test
>   LINK  tests/es1370-test
>   LINK  tests/virtio-net-test
>   LINK  tests/virtio-balloon-test
>   LINK  tests/virtio-blk-test
>   LINK  tests/virtio-rng-test
>   LINK  tests/virtio-scsi-test
>   LINK  tests/virtio-serial-test
>   LINK  tests/virtio-console-test
>   LINK  tests/tpci200-test
>   LINK  tests/ipoctal232-test
>   LINK  tests/display-vga-test
>   LINK  tests/intel-hda-test
>   LINK  tests/ivshmem-test
>   LINK  tests/vmxnet3-test
>   LINK  tests/pvpanic-test
>   LINK  tests/i82801b11-test
>   LINK  tests/ioh3420-test
>   LINK  tests/usb-hcd-ohci-test
>   LINK  tests/usb-hcd-uhci-test
>   LINK  tests/usb-hcd-ehci-test
>   LINK  tests/usb-hcd-xhci-test
>   LINK  tests/pc-cpu-test
>   LINK  tests/q35-test
>   LINK  tests/test-netfilter
>   LINK  tests/test-filter-mirror
>   LINK  tests/test-filter-redirector
>   LINK  tests/postcopy-test
>   LINK  tests/device-introspect-test
>   LINK  tests/qom-test
> GTESTER tests/check-qdict
> GTESTER tests/check-qfloat
> GTESTER tests/check-qint
> GTESTER tests/check-qstring
> GTESTER tests/check-qlist
> GTESTER tests/check-qnull
> GTESTER tests/check-qjson
>   LINK  tests/test-qmp-output-visitor
>   LINK  tests/test-clone-visitor
>   LINK  tests/test-qmp-input-visitor
>   LINK  tests/test-qmp-input-strict
>   LINK  tests/test-qmp-commands
>   LINK  tests/test-string-input-visitor
>   LINK  tests/test-string-output-visitor
>   LINK  tests/test-qmp-event
>   LINK  tests/test-opts-visitor
> GTESTER tests/test-coroutine
>   LINK  tests/test-visitor-serialization
> GTESTER tests/test-iov
> GTESTER tests/test-aio
> GTESTER tests/test-rfifolock
> GTESTER tests/test-throttle
> GTESTER tests/test-thread-pool
> GTESTER tests/test-hbitmap
> GTESTER tests/test-blockjob
> GTESTER tests/test-blockjob-txn
> GTESTER tests/test-x86-cpuid
> GTESTER tests/test-xbzrle
> GTESTER tests/test-vmstate
> GTESTER tests/test-cutils
> GTESTER tests/test-mul64
> GTESTER tests/test-int128
> GTESTER tests/rcutorture
> GTESTER tests/test-rcu-list
> GTESTER tests/test-qdist
> GTESTER tests/test-qht
>   LINK  tests/test-qht-par
> GTESTER tests/test-bitops
> GTESTER tests/check-qom-interface
> GTESTER tests/check-qom-proplist
> GTESTER tests/test-qemu-opts
> GTESTER tests/test-write-threshold
> GTESTER tests/test-crypto-hash
> GTESTER tests/test-crypto-cipher
> GTESTER tests/test-crypto-secret
> GTESTER tests/test-qga
> GTESTER tests/test-timed-average
> GTESTER tests/test-io-task
> GTESTER tests/test-io-channel-socket
> GTESTER tests/test-io-channel-file
> GTESTER tests/test-io-channel-command
> GTESTER tests/test-io-channel-buffer
> GTESTER tests/test-base64
> GTESTER tests/test-crypto-ivgen
> GTESTER tests/test-crypto-afsplit
> GTESTER tests/test-crypto-xts
> GTESTER tests/test-crypto-block
> GTESTER tests/test-logging
> GTESTER check-qtest-x86_64
> GTESTER check-qtest-aarch64
> GTESTER tests/test-qmp-output-visitor
> GTESTER tests/test-clone-visitor
> GTESTER tests/test-qmp-input-visitor
> GTESTER tests/test-qmp-input-strict
> GTESTER tests/test-qmp-commands
> GTESTER tests/test-string-input-visitor
> GTESTER tests/test-string-output-visitor
> GTESTER tests/test-qmp-event
> GTESTER tests/test-opts-visitor
> GTESTER tests/test-visitor-serialization
> GTESTER tests/test-qht-par
> === OUTPUT END ===
> 
> Abort: command timeout (>3600 seconds)
> 
> 
> ---
> Email generated automatically by Patchew [http://patchew.org/].
> Please send your feedback to patchew-devel@freelists.org
Aneesh Kumar K.V Aug. 11, 2016, 6:31 a.m. UTC | #3
P J P <ppandit@redhat.com> writes:

> From: Prasad J Pandit <pjp@fedoraproject.org>
>
> At various places in 9pfs back-end, it creates full path by
> concatenating two path strings. It could lead to a path
> traversal issue if one of the parameter was a relative path.
> Add check to avoid it.
>
> Reported-by: Felix Wilhelm <fwilhelm@ernw.de>
> Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>

I am not sure relative path names need to be completely disallowed. What
we need is to disallow the access outside export path. virtfs-proxy was
done primarily to handle such things. It does a chroot to the export
path. 


> ---
>  hw/9pfs/9p-local.c | 31 +++++++++++++++++++++++++++----
>  1 file changed, 27 insertions(+), 4 deletions(-)
>
> diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
> index 3f271fc..c20331a 100644
> --- a/hw/9pfs/9p-local.c
> +++ b/hw/9pfs/9p-local.c
> @@ -493,6 +493,9 @@ static int local_mknod(FsContext *fs_ctx, V9fsPath *dir_path,
>      char *buffer = NULL;
>  
>      v9fs_string_init(&fullname);
> +    if (strstr(name, "../")) {
> +        return err;
> +    }
>      v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
>      path = fullname.data;
>  
> @@ -554,6 +557,9 @@ static int local_mkdir(FsContext *fs_ctx, V9fsPath *dir_path,
>      char *buffer = NULL;
>  
>      v9fs_string_init(&fullname);
> +    if (strstr(name, "../")) {
> +        return err;
> +    }
>      v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
>      path = fullname.data;
>  
> @@ -663,6 +669,9 @@ static int local_open2(FsContext *fs_ctx, V9fsPath *dir_path, const char *name,
>      flags |= O_NOFOLLOW;
>  
>      v9fs_string_init(&fullname);
> +    if (strstr(name, "../")) {
> +        return err;
> +    }
>      v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
>      path = fullname.data;
>  
> @@ -734,6 +743,9 @@ static int local_symlink(FsContext *fs_ctx, const char *oldpath,
>      char *buffer = NULL;
>  
>      v9fs_string_init(&fullname);
> +    if (strstr(name, "../")) {
> +        return err;
> +    }
>      v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
>      newpath = fullname.data;
>  
> @@ -830,11 +842,14 @@ out:
>  static int local_link(FsContext *ctx, V9fsPath *oldpath,
>                        V9fsPath *dirpath, const char *name)
>  {
> -    int ret;
> +    int ret = -1;
>      V9fsString newpath;
>      char *buffer, *buffer1;
>  
>      v9fs_string_init(&newpath);
> +    if (strstr(name, "../")) {
> +        return ret;
> +    }
>      v9fs_string_sprintf(&newpath, "%s/%s", dirpath->data, name);
>  
>      buffer = rpath(ctx, oldpath->data);
> @@ -1059,6 +1074,9 @@ static int local_lremovexattr(FsContext *ctx, V9fsPath *fs_path,
>  static int local_name_to_path(FsContext *ctx, V9fsPath *dir_path,
>                                const char *name, V9fsPath *target)
>  {
> +    if (strstr(name, "../")) {
> +        return -1;
> +    }
>      if (dir_path) {
>          v9fs_string_sprintf((V9fsString *)target, "%s/%s",
>                              dir_path->data, name);
> @@ -1074,12 +1092,15 @@ static int local_renameat(FsContext *ctx, V9fsPath *olddir,
>                            const char *old_name, V9fsPath *newdir,
>                            const char *new_name)
>  {
> -    int ret;
> +    int ret = -1;
>      V9fsString old_full_name, new_full_name;
>  
>      v9fs_string_init(&old_full_name);
>      v9fs_string_init(&new_full_name);
>  
> +    if (strstr(old_name, "../") || strstr(new_name, "../")) {
> +        return ret;
> +    }
>      v9fs_string_sprintf(&old_full_name, "%s/%s", olddir->data, old_name);
>      v9fs_string_sprintf(&new_full_name, "%s/%s", newdir->data, new_name);
>  
> @@ -1092,12 +1113,14 @@ static int local_renameat(FsContext *ctx, V9fsPath *olddir,
>  static int local_unlinkat(FsContext *ctx, V9fsPath *dir,
>                            const char *name, int flags)
>  {
> -    int ret;
> +    int ret = -1;
>      V9fsString fullname;
>      char *buffer;
>  
>      v9fs_string_init(&fullname);
> -
> +    if (strstr(name, "../")) {
> +        return ret;
> +    }
>      v9fs_string_sprintf(&fullname, "%s/%s", dir->data, name);
>      if (ctx->export_flags & V9FS_SM_MAPPED_FILE) {
>          if (flags == AT_REMOVEDIR) {
> -- 
> 2.5.5
Greg Kurz Aug. 18, 2016, 3:19 p.m. UTC | #4
On Thu, 11 Aug 2016 12:01:46 +0530
"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> wrote:

> P J P <ppandit@redhat.com> writes:
> 
> > From: Prasad J Pandit <pjp@fedoraproject.org>
> >
> > At various places in 9pfs back-end, it creates full path by
> > concatenating two path strings. It could lead to a path
> > traversal issue if one of the parameter was a relative path.
> > Add check to avoid it.
> >
> > Reported-by: Felix Wilhelm <fwilhelm@ernw.de>
> > Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>  
> 
> I am not sure relative path names need to be completely disallowed. What

The official linux client does not send relative paths: all ".." path
components are resolved in the VFS layer IIUC.

> we need is to disallow the access outside export path. virtfs-proxy was
> done primarily to handle such things. 

My understanding is that the virtfs proxy was created to handle the case when
QEMU is running as non-root but root privilege is needed: to be able to call
lchown() or chmod() on any uid/gid when using the passthrough security model
for example.

> It does a chroot to the export path. 
> 

Yes it does since it is running as root and isn't supposed to access
anything outside the 9p mount path. But that doesn't help here since
the issue affects 9p-local, which is run by the QEMU process.

> 
> > ---
> >  hw/9pfs/9p-local.c | 31 +++++++++++++++++++++++++++----
> >  1 file changed, 27 insertions(+), 4 deletions(-)
> >
> > diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
> > index 3f271fc..c20331a 100644
> > --- a/hw/9pfs/9p-local.c
> > +++ b/hw/9pfs/9p-local.c
> > @@ -493,6 +493,9 @@ static int local_mknod(FsContext *fs_ctx, V9fsPath *dir_path,
> >      char *buffer = NULL;
> >  
> >      v9fs_string_init(&fullname);
> > +    if (strstr(name, "../")) {
> > +        return err;
> > +    }
> >      v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
> >      path = fullname.data;
> >  
> > @@ -554,6 +557,9 @@ static int local_mkdir(FsContext *fs_ctx, V9fsPath *dir_path,
> >      char *buffer = NULL;
> >  
> >      v9fs_string_init(&fullname);
> > +    if (strstr(name, "../")) {
> > +        return err;
> > +    }
> >      v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
> >      path = fullname.data;
> >  
> > @@ -663,6 +669,9 @@ static int local_open2(FsContext *fs_ctx, V9fsPath *dir_path, const char *name,
> >      flags |= O_NOFOLLOW;
> >  
> >      v9fs_string_init(&fullname);
> > +    if (strstr(name, "../")) {
> > +        return err;
> > +    }
> >      v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
> >      path = fullname.data;
> >  
> > @@ -734,6 +743,9 @@ static int local_symlink(FsContext *fs_ctx, const char *oldpath,
> >      char *buffer = NULL;
> >  
> >      v9fs_string_init(&fullname);
> > +    if (strstr(name, "../")) {
> > +        return err;
> > +    }
> >      v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
> >      newpath = fullname.data;
> >  
> > @@ -830,11 +842,14 @@ out:
> >  static int local_link(FsContext *ctx, V9fsPath *oldpath,
> >                        V9fsPath *dirpath, const char *name)
> >  {
> > -    int ret;
> > +    int ret = -1;
> >      V9fsString newpath;
> >      char *buffer, *buffer1;
> >  
> >      v9fs_string_init(&newpath);
> > +    if (strstr(name, "../")) {
> > +        return ret;
> > +    }
> >      v9fs_string_sprintf(&newpath, "%s/%s", dirpath->data, name);
> >  
> >      buffer = rpath(ctx, oldpath->data);
> > @@ -1059,6 +1074,9 @@ static int local_lremovexattr(FsContext *ctx, V9fsPath *fs_path,
> >  static int local_name_to_path(FsContext *ctx, V9fsPath *dir_path,
> >                                const char *name, V9fsPath *target)
> >  {
> > +    if (strstr(name, "../")) {
> > +        return -1;
> > +    }
> >      if (dir_path) {
> >          v9fs_string_sprintf((V9fsString *)target, "%s/%s",
> >                              dir_path->data, name);
> > @@ -1074,12 +1092,15 @@ static int local_renameat(FsContext *ctx, V9fsPath *olddir,
> >                            const char *old_name, V9fsPath *newdir,
> >                            const char *new_name)
> >  {
> > -    int ret;
> > +    int ret = -1;
> >      V9fsString old_full_name, new_full_name;
> >  
> >      v9fs_string_init(&old_full_name);
> >      v9fs_string_init(&new_full_name);
> >  
> > +    if (strstr(old_name, "../") || strstr(new_name, "../")) {
> > +        return ret;
> > +    }
> >      v9fs_string_sprintf(&old_full_name, "%s/%s", olddir->data, old_name);
> >      v9fs_string_sprintf(&new_full_name, "%s/%s", newdir->data, new_name);
> >  
> > @@ -1092,12 +1113,14 @@ static int local_renameat(FsContext *ctx, V9fsPath *olddir,
> >  static int local_unlinkat(FsContext *ctx, V9fsPath *dir,
> >                            const char *name, int flags)
> >  {
> > -    int ret;
> > +    int ret = -1;
> >      V9fsString fullname;
> >      char *buffer;
> >  
> >      v9fs_string_init(&fullname);
> > -
> > +    if (strstr(name, "../")) {
> > +        return ret;
> > +    }
> >      v9fs_string_sprintf(&fullname, "%s/%s", dir->data, name);
> >      if (ctx->export_flags & V9FS_SM_MAPPED_FILE) {
> >          if (flags == AT_REMOVEDIR) {
> > -- 
> > 2.5.5  
>
Greg Kurz Aug. 18, 2016, 4:55 p.m. UTC | #5
On Thu, 11 Aug 2016 14:27:15 +0800
Fam Zheng <famz@redhat.com> wrote:

> On Wed, 08/10 23:17, no-reply@ec2-52-6-146-230.compute-1.amazonaws.com wrote:
> > Hi,
> > 
> > Your series failed automatic build test. Please find the testing commands and
> > their output below. If you have docker installed, you can probably reproduce it
> > locally.  
> 
> This may not relate to this patch. But some qtest did hang on the test machine.
> 

The current qtest for 9p does not do anything, unfortunately, but testing
basic initialization so far... This patch has no effect here.

FWIW, I could successfully run make check with this patch and the current
master branch (commit 5844365fe8e5).

> [root@virtlab205 ~]# pgrep -af qtest
> 
> 12377 /bin/sh -c echo "GTESTER check-qtest-x86_64" &&
> QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img
> MALLOC_PERTURB_=${MALLOC_PERTURB_:-$((RANDOM % 255 + 1))} gtester -k -q
> -m=quick tests/vhost-user-test tests/endianness-test tests/fdc-test
> tests/ide-test tests/ahci-test tests/hd-geo-test tests/boot-order-test
> tests/bios-tables-test tests/pxe-test tests/rtc-test tests/ipmi-kcs-test
> tests/ipmi-bt-test tests/i440fx-test tests/fw_cfg-test tests/drive_del-test
> tests/wdt_ib700-test tests/tco-test tests/e1000-test tests/e1000e-test
> tests/rtl8139-test tests/pcnet-test tests/eepro100-test tests/ne2000-test
> tests/nvme-test tests/ac97-test tests/es1370-test tests/virtio-net-test
> tests/virtio-balloon-test tests/virtio-blk-test tests/virtio-rng-test
> tests/virtio-scsi-test tests/virtio-serial-test tests/virtio-console-test
> tests/tpci200-test tests/ipoctal232-test tests/display-vga-test
> tests/intel-hda-test tests/ivshmem-test tests/vmxnet3-test tests/pvpanic-test
> tests/i82801b11-test tests/ioh3420-test tests/usb-hcd-ohci-test
> tests/usb-hcd-uhci-test tests/usb-hcd-ehci-test tests/usb-hcd-xhci-test
> tests/pc-cpu-test tests/q35-test tests/test-netfilter tests/test-filter-mirror
> tests/test-filter-redirector tests/postcopy-test tests/device-introspect-test
> tests/qom-test
> 
> 12381 x86_64-softmmu/qemu-system-x86_64 -qtest unix:/tmp/qtest-6376.sock,nowait
> -qtest-log /dev/null -qmp unix:/tmp/qtest-6376.qmp,nowait -machine accel=qtest
> -display none -machine accel=tcg -m 512 -object
> memory-backend-file,id=mem,size=512M,mem-path=/tmp/vhost-test-4glolA,share=on
> -numa node,memdev=mem -chardev
> socket,id=chr-test,path=/tmp/vhost-test-4glolA/test.sock -netdev
> vhost-user,id=net0,chardev=chr-test,vhostforce -device
> virtio-net-pci,netdev=net0,romfile=./pc-bios/pxe-virtio.rom
> 
> I haven't looked any deeper.
> 
> Fam
> 
> > 
> > Subject: [Qemu-devel] [PATCH] 9pfs: add check for relative path
> > Message-id: 1470892391-4917-1-git-send-email-ppandit@redhat.com
> > Type: series
> > 
> > === TEST SCRIPT BEGIN ===
> > #!/bin/bash
> > set -e
> > git submodule update --init dtc
> > make J=8 docker-test-quick@centos6
> > 
> > # we need CURL DPRINTF patch
> > # http://patchew.org/QEMU/1470027888-24381-1-git-send-email-famz%40redhat.com/
> > #make J=8 docker-test-mingw@fedora
> > === TEST SCRIPT END ===
> > 
> > Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
> > Switched to a new branch 'test'
> > 4e97568 9pfs: add check for relative path
> > 
> > === OUTPUT BEGIN ===
> > Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
> > Cloning into 'dtc'...
> > Submodule path 'dtc': checked out '65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf'
> >   BUILD centos6
> >   ARCHIVE qemu.tgz
> >   ARCHIVE dtc.tgz
> >   COPY RUNNER
> >   RUN test-quick in centos6
> > No C++ compiler available; disabling C++ specific optional code
> > Install prefix    /tmp/qemu-test/src/tests/docker/install
> > BIOS directory    /tmp/qemu-test/src/tests/docker/install/share/qemu
> > binary directory  /tmp/qemu-test/src/tests/docker/install/bin
> > library directory /tmp/qemu-test/src/tests/docker/install/lib
> > module directory  /tmp/qemu-test/src/tests/docker/install/lib/qemu
> > libexec directory /tmp/qemu-test/src/tests/docker/install/libexec
> > include directory /tmp/qemu-test/src/tests/docker/install/include
> > config directory  /tmp/qemu-test/src/tests/docker/install/etc
> > local state directory   /tmp/qemu-test/src/tests/docker/install/var
> > Manual directory  /tmp/qemu-test/src/tests/docker/install/share/man
> > ELF interp prefix /usr/gnemul/qemu-%M
> > Source path       /tmp/qemu-test/src
> > C compiler        cc
> > Host C compiler   cc
> > C++ compiler      
> > Objective-C compiler cc
> > ARFLAGS           rv
> > CFLAGS            -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -g 
> > QEMU_CFLAGS       -I/usr/include/pixman-1    -fPIE -DPIE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common  -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all
> > LDFLAGS           -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g 
> > make              make
> > install           install
> > python            python -B
> > smbd              /usr/sbin/smbd
> > module support    no
> > host CPU          x86_64
> > host big endian   no
> > target list       x86_64-softmmu aarch64-softmmu
> > tcg debug enabled no
> > gprof enabled     no
> > sparse enabled    no
> > strip binaries    yes
> > profiler          no
> > static build      no
> > pixman            system
> > SDL support       yes (1.2.14)
> > GTK support       no 
> > GTK GL support    no
> > VTE support       no 
> > TLS priority      NORMAL
> > GNUTLS support    no
> > GNUTLS rnd        no
> > libgcrypt         no
> > libgcrypt kdf     no
> > nettle            no 
> > nettle kdf        no
> > libtasn1          no
> > curses support    no
> > virgl support     no
> > curl support      no
> > mingw32 support   no
> > Audio drivers     oss
> > Block whitelist (rw) 
> > Block whitelist (ro) 
> > VirtFS support    no
> > VNC support       yes
> > VNC SASL support  no
> > VNC JPEG support  no
> > VNC PNG support   no
> > xen support       no
> > brlapi support    no
> > bluez  support    no
> > Documentation     no
> > PIE               yes
> > vde support       no
> > netmap support    no
> > Linux AIO support no
> > ATTR/XATTR support yes
> > Install blobs     yes
> > KVM support       yes
> > RDMA support      no
> > TCG interpreter   no
> > fdt support       yes
> > preadv support    yes
> > fdatasync         yes
> > madvise           yes
> > posix_madvise     yes
> > uuid support      no
> > libcap-ng support no
> > vhost-net support yes
> > vhost-scsi support yes
> > Trace backends    log
> > spice support     no 
> > rbd support       no
> > xfsctl support    no
> > smartcard support no
> > libusb            no
> > usb net redir     no
> > OpenGL support    no
> > OpenGL dmabufs    no
> > libiscsi support  no
> > libnfs support    no
> > build guest agent yes
> > QGA VSS support   no
> > QGA w32 disk info no
> > QGA MSI support   no
> > seccomp support   no
> > coroutine backend ucontext
> > coroutine pool    yes
> > GlusterFS support no
> > Archipelago support no
> > gcov              gcov
> > gcov enabled      no
> > TPM support       yes
> > libssh2 support   no
> > TPM passthrough   yes
> > QOM debugging     yes
> > vhdx              no
> > lzo support       no
> > snappy support    no
> > bzip2 support     no
> > NUMA host support no
> > tcmalloc support  no
> > jemalloc support  no
> > avx2 optimization no
> >   GEN   x86_64-softmmu/config-devices.mak.tmp
> >   GEN   aarch64-softmmu/config-devices.mak.tmp
> >   GEN   config-host.h
> >   GEN   qemu-options.def
> >   GEN   qmp-commands.h
> >   GEN   qapi-types.h
> >   GEN   qapi-visit.h
> >   GEN   qapi-event.h
> >   GEN   x86_64-softmmu/config-devices.mak
> >   GEN   aarch64-softmmu/config-devices.mak
> >   GEN   qmp-introspect.h
> >   GEN   tests/test-qapi-types.h
> >   GEN   tests/test-qapi-visit.h
> >   GEN   tests/test-qmp-commands.h
> >   GEN   tests/test-qapi-event.h
> >   GEN   tests/test-qmp-introspect.h
> >   GEN   config-all-devices.mak
> >   GEN   trace/generated-events.h
> >   GEN   trace/generated-tracers.h
> >   GEN   trace/generated-tcg-tracers.h
> >   GEN   trace/generated-helpers-wrappers.h
> >   GEN   trace/generated-helpers.h
> >   CC    tests/qemu-iotests/socket_scm_helper.o
> >   GEN   qga/qapi-generated/qga-qapi-types.h
> >   GEN   qga/qapi-generated/qga-qapi-visit.h
> >   GEN   qga/qapi-generated/qga-qmp-commands.h
> >   GEN   qga/qapi-generated/qga-qapi-types.c
> >   GEN   qga/qapi-generated/qga-qapi-visit.c
> >   GEN   qga/qapi-generated/qga-qmp-marshal.c
> >   GEN   qmp-introspect.c
> >   GEN   qapi-types.c
> >   GEN   qapi-visit.c
> >   GEN   qapi-event.c
> >   CC    qapi/qapi-visit-core.o
> >   CC    qapi/qapi-dealloc-visitor.o
> >   CC    qapi/qmp-input-visitor.o
> >   CC    qapi/qmp-output-visitor.o
> >   CC    qapi/qmp-registry.o
> >   CC    qapi/qmp-dispatch.o
> >   CC    qapi/string-input-visitor.o
> >   CC    qapi/string-output-visitor.o
> >   CC    qapi/opts-visitor.o
> >   CC    qapi/qapi-clone-visitor.o
> >   CC    qapi/qmp-event.o
> >   CC    qapi/qapi-util.o
> >   CC    qobject/qnull.o
> >   CC    qobject/qint.o
> >   CC    qobject/qstring.o
> >   CC    qobject/qdict.o
> >   CC    qobject/qlist.o
> >   CC    qobject/qfloat.o
> >   CC    qobject/qbool.o
> >   CC    qobject/qjson.o
> >   CC    qobject/qobject.o
> >   CC    qobject/json-lexer.o
> >   CC    qobject/json-streamer.o
> >   CC    qobject/json-parser.o
> >   GEN   trace/generated-events.c
> >   CC    trace/control.o
> >   CC    trace/qmp.o
> >   CC    util/osdep.o
> >   CC    util/cutils.o
> >   CC    util/unicode.o
> >   CC    util/qemu-timer-common.o
> >   CC    util/compatfd.o
> >   CC    util/event_notifier-posix.o
> >   CC    util/mmap-alloc.o
> >   CC    util/oslib-posix.o
> >   CC    util/qemu-openpty.o
> >   CC    util/qemu-thread-posix.o
> >   CC    util/memfd.o
> >   CC    util/path.o
> >   CC    util/envlist.o
> >   CC    util/module.o
> >   CC    util/bitmap.o
> >   CC    util/bitops.o
> >   CC    util/hbitmap.o
> >   CC    util/fifo8.o
> >   CC    util/acl.o
> >   CC    util/error.o
> >   CC    util/qemu-error.o
> >   CC    util/id.o
> >   CC    util/iov.o
> >   CC    util/qemu-config.o
> >   CC    util/qemu-sockets.o
> >   CC    util/uri.o
> >   CC    util/notify.o
> >   CC    util/qemu-option.o
> >   CC    util/qemu-progress.o
> >   CC    util/hexdump.o
> >   CC    util/crc32c.o
> >   CC    util/throttle.o
> >   CC    util/getauxval.o
> >   CC    util/readline.o
> >   CC    util/rfifolock.o
> >   CC    util/rcu.o
> >   CC    util/qemu-coroutine.o
> >   CC    util/qemu-coroutine-lock.o
> >   CC    util/qemu-coroutine-io.o
> >   CC    util/qemu-coroutine-sleep.o
> >   CC    util/coroutine-ucontext.o
> >   CC    util/buffer.o
> >   CC    util/timed-average.o
> >   CC    util/base64.o
> >   CC    util/log.o
> >   CC    util/qdist.o
> >   CC    util/qht.o
> >   CC    util/range.o
> >   CC    crypto/pbkdf-stub.o
> >   CC    stubs/arch-query-cpu-def.o
> >   CC    stubs/bdrv-next-monitor-owned.o
> >   CC    stubs/blk-commit-all.o
> >   CC    stubs/blockdev-close-all-bdrv-states.o
> > /tmp/qemu-test/src/util/qht.c: In function ‘qht_reset_size’:
> > /tmp/qemu-test/src/util/qht.c:413: warning: ‘new’ may be used uninitialized in this function
> >   CC    stubs/clock-warp.o
> >   CC    stubs/cpu-get-clock.o
> >   CC    stubs/cpu-get-icount.o
> >   CC    stubs/dump.o
> >   CC    stubs/fdset-add-fd.o
> >   CC    stubs/fdset-find-fd.o
> >   CC    stubs/fdset-get-fd.o
> >   CC    stubs/fdset-remove-fd.o
> >   CC    stubs/gdbstub.o
> >   CC    stubs/get-fd.o
> >   CC    stubs/get-next-serial.o
> >   CC    stubs/get-vm-name.o
> >   CC    stubs/iothread-lock.o
> >   CC    stubs/is-daemonized.o
> >   CC    stubs/mon-is-qmp.o
> >   CC    stubs/machine-init-done.o
> >   CC    stubs/migr-blocker.o
> >   CC    stubs/mon-printf.o
> >   CC    stubs/monitor-init.o
> >   CC    stubs/notify-event.o
> >   CC    stubs/qtest.o
> >   CC    stubs/replay.o
> >   CC    stubs/replay-user.o
> >   CC    stubs/reset.o
> >   CC    stubs/runstate-check.o
> >   CC    stubs/set-fd-handler.o
> >   CC    stubs/slirp.o
> >   CC    stubs/sysbus.o
> >   CC    stubs/trace-control.o
> >   CC    stubs/uuid.o
> >   CC    stubs/vm-stop.o
> >   CC    stubs/vmstate.o
> >   CC    stubs/cpus.o
> >   CC    stubs/kvm.o
> >   CC    stubs/qmp_pc_dimm_device_list.o
> >   CC    stubs/target-monitor-defs.o
> >   CC    stubs/target-get-monitor-def.o
> >   CC    stubs/vhost.o
> >   CC    stubs/iohandler.o
> >   CC    stubs/smbios_type_38.o
> >   CC    stubs/ipmi.o
> >   CC    stubs/pc_madt_cpu_entry.o
> >   CC    contrib/ivshmem-client/ivshmem-client.o
> >   CC    contrib/ivshmem-client/main.o
> >   CC    contrib/ivshmem-server/main.o
> >   CC    contrib/ivshmem-server/ivshmem-server.o
> >   CC    qemu-nbd.o
> >   CC    async.o
> >   CC    thread-pool.o
> >   CC    block.o
> >   CC    blockjob.o
> >   CC    main-loop.o
> >   CC    iohandler.o
> >   CC    qemu-timer.o
> >   CC    aio-posix.o
> >   CC    qemu-io-cmds.o
> >   CC    block/raw_bsd.o
> >   CC    block/qcow.o
> >   CC    block/vdi.o
> >   CC    block/vmdk.o
> >   CC    block/cloop.o
> >   CC    block/bochs.o
> >   CC    block/vpc.o
> >   CC    block/vvfat.o
> >   CC    block/qcow2.o
> >   CC    block/qcow2-refcount.o
> >   CC    block/qcow2-cluster.o
> >   CC    block/qcow2-snapshot.o
> >   CC    block/qcow2-cache.o
> >   CC    block/qed.o
> >   CC    block/qed-gencb.o
> >   CC    block/qed-l2-cache.o
> >   CC    block/qed-table.o
> >   CC    block/qed-cluster.o
> >   CC    block/qed-check.o
> >   CC    block/quorum.o
> >   CC    block/parallels.o
> >   CC    block/blkdebug.o
> >   CC    block/blkverify.o
> >   CC    block/blkreplay.o
> >   CC    block/block-backend.o
> >   CC    block/snapshot.o
> >   CC    block/qapi.o
> >   CC    block/raw-posix.o
> >   CC    block/null.o
> >   CC    block/mirror.o
> >   CC    block/commit.o
> >   CC    block/io.o
> >   CC    block/throttle-groups.o
> >   CC    block/nbd.o
> >   CC    block/nbd-client.o
> >   CC    block/sheepdog.o
> >   CC    block/accounting.o
> >   CC    block/dirty-bitmap.o
> >   CC    block/write-threshold.o
> >   CC    block/crypto.o
> >   CC    nbd/server.o
> >   CC    nbd/client.o
> >   CC    nbd/common.o
> >   CC    block/dmg.o
> >   CC    crypto/init.o
> >   CC    crypto/hash.o
> >   CC    crypto/hash-glib.o
> >   CC    crypto/aes.o
> >   CC    crypto/desrfb.o
> >   CC    crypto/cipher.o
> >   CC    crypto/tlscreds.o
> >   CC    crypto/tlscredsanon.o
> >   CC    crypto/tlscredsx509.o
> >   CC    crypto/tlssession.o
> >   CC    crypto/secret.o
> >   CC    crypto/random-platform.o
> >   CC    crypto/pbkdf.o
> >   CC    crypto/ivgen.o
> >   CC    crypto/ivgen-essiv.o
> >   CC    crypto/ivgen-plain.o
> >   CC    crypto/ivgen-plain64.o
> >   CC    crypto/afsplit.o
> >   CC    crypto/xts.o
> >   CC    crypto/block.o
> >   CC    crypto/block-qcow.o
> >   CC    crypto/block-luks.o
> >   CC    io/channel.o
> >   CC    io/channel-buffer.o
> >   CC    io/channel-command.o
> >   CC    io/channel-file.o
> >   CC    io/channel-socket.o
> >   CC    io/channel-tls.o
> >   CC    io/channel-watch.o
> >   CC    io/channel-websock.o
> >   CC    io/channel-util.o
> >   CC    io/task.o
> >   CC    qom/object.o
> >   CC    qom/container.o
> >   CC    qom/qom-qobject.o
> >   CC    qom/object_interfaces.o
> >   GEN   qemu-img-cmds.h
> >   CC    qemu-io.o
> >   CC    qemu-bridge-helper.o
> >   CC    blockdev.o
> >   CC    blockdev-nbd.o
> >   CC    iothread.o
> >   CC    qdev-monitor.o
> >   CC    device-hotplug.o
> >   CC    os-posix.o
> >   CC    qemu-char.o
> >   CC    page_cache.o
> >   CC    accel.o
> >   CC    bt-host.o
> >   CC    bt-vhci.o
> >   CC    dma-helpers.o
> >   CC    vl.o
> >   CC    tpm.o
> >   CC    device_tree.o
> >   GEN   qmp-marshal.c
> >   CC    qmp.o
> >   CC    hmp.o
> >   CC    tcg-runtime.o
> >   CC    audio/audio.o
> >   CC    audio/noaudio.o
> >   CC    audio/wavaudio.o
> >   CC    audio/mixeng.o
> >   CC    audio/sdlaudio.o
> >   CC    audio/ossaudio.o
> >   CC    audio/wavcapture.o
> >   CC    backends/rng.o
> >   CC    backends/rng-egd.o
> >   CC    backends/rng-random.o
> >   CC    backends/msmouse.o
> >   CC    backends/testdev.o
> >   CC    backends/tpm.o
> >   CC    backends/hostmem.o
> >   CC    backends/hostmem-ram.o
> >   CC    backends/hostmem-file.o
> >   CC    block/stream.o
> >   CC    block/backup.o
> >   CC    disas/arm.o
> >   CC    disas/i386.o
> >   CC    fsdev/qemu-fsdev-dummy.o
> >   CC    fsdev/qemu-fsdev-opts.o
> >   CC    hw/acpi/core.o
> >   CC    hw/acpi/piix4.o
> >   CC    hw/acpi/pcihp.o
> >   CC    hw/acpi/ich9.o
> >   CC    hw/acpi/tco.o
> >   CC    hw/acpi/cpu_hotplug.o
> >   CC    hw/acpi/memory_hotplug.o
> >   CC    hw/acpi/memory_hotplug_acpi_table.o
> >   CC    hw/acpi/cpu.o
> >   CC    hw/acpi/acpi_interface.o
> >   CC    hw/acpi/bios-linker-loader.o
> >   CC    hw/acpi/aml-build.o
> >   CC    hw/acpi/ipmi.o
> >   CC    hw/audio/sb16.o
> >   CC    hw/audio/es1370.o
> >   CC    hw/audio/ac97.o
> >   CC    hw/audio/fmopl.o
> >   CC    hw/audio/adlib.o
> >   CC    hw/audio/gus.o
> >   CC    hw/audio/gusemu_hal.o
> >   CC    hw/audio/gusemu_mixer.o
> >   CC    hw/audio/cs4231a.o
> >   CC    hw/audio/intel-hda.o
> >   CC    hw/audio/hda-codec.o
> >   CC    hw/audio/pcspk.o
> >   CC    hw/audio/wm8750.o
> >   CC    hw/audio/pl041.o
> >   CC    hw/audio/lm4549.o
> >   CC    hw/audio/marvell_88w8618.o
> >   CC    hw/block/block.o
> >   CC    hw/block/cdrom.o
> >   CC    hw/block/hd-geometry.o
> >   CC    hw/block/fdc.o
> >   CC    hw/block/m25p80.o
> >   CC    hw/block/nand.o
> >   CC    hw/block/pflash_cfi01.o
> >   CC    hw/block/pflash_cfi02.o
> >   CC    hw/block/ecc.o
> >   CC    hw/block/onenand.o
> >   CC    hw/block/nvme.o
> >   CC    hw/bt/core.o
> >   CC    hw/bt/l2cap.o
> >   CC    hw/bt/sdp.o
> >   CC    hw/bt/hci.o
> >   CC    hw/bt/hid.o
> >   CC    hw/bt/hci-csr.o
> >   CC    hw/char/ipoctal232.o
> >   CC    hw/char/parallel.o
> >   CC    hw/char/pl011.o
> >   CC    hw/char/serial.o
> >   CC    hw/char/serial-isa.o
> >   CC    hw/char/serial-pci.o
> >   CC    hw/char/cadence_uart.o
> >   CC    hw/char/virtio-console.o
> >   CC    hw/char/debugcon.o
> >   CC    hw/char/imx_serial.o
> >   CC    hw/core/qdev.o
> >   CC    hw/core/qdev-properties.o
> >   CC    hw/core/bus.o
> >   CC    hw/core/fw-path-provider.o
> >   CC    hw/core/irq.o
> >   CC    hw/core/hotplug.o
> >   CC    hw/core/ptimer.o
> >   CC    hw/core/sysbus.o
> >   CC    hw/core/machine.o
> >   CC    hw/core/null-machine.o
> >   CC    hw/core/loader.o
> >   CC    hw/core/qdev-properties-system.o
> >   CC    hw/core/register.o
> >   CC    hw/core/platform-bus.o
> >   CC    hw/display/ads7846.o
> >   CC    hw/display/cirrus_vga.o
> >   CC    hw/display/pl110.o
> >   CC    hw/display/ssd0303.o
> >   CC    hw/display/ssd0323.o
> >   CC    hw/display/vga-pci.o
> >   CC    hw/display/vga-isa.o
> >   CC    hw/display/vmware_vga.o
> >   CC    hw/display/blizzard.o
> >   CC    hw/display/exynos4210_fimd.o
> >   CC    hw/display/framebuffer.o
> >   CC    hw/display/tc6393xb.o
> >   CC    hw/dma/pl080.o
> >   CC    hw/dma/pl330.o
> >   CC    hw/dma/i8257.o
> >   CC    hw/dma/xlnx-zynq-devcfg.o
> >   CC    hw/gpio/max7310.o
> >   CC    hw/gpio/zaurus.o
> >   CC    hw/gpio/pl061.o
> >   CC    hw/gpio/gpio_key.o
> >   CC    hw/i2c/core.o
> >   CC    hw/i2c/smbus.o
> >   CC    hw/i2c/smbus_eeprom.o
> >   CC    hw/i2c/i2c-ddc.o
> >   CC    hw/i2c/versatile_i2c.o
> >   CC    hw/i2c/smbus_ich9.o
> >   CC    hw/i2c/pm_smbus.o
> >   CC    hw/i2c/bitbang_i2c.o
> >   CC    hw/i2c/exynos4210_i2c.o
> >   CC    hw/i2c/imx_i2c.o
> >   CC    hw/i2c/aspeed_i2c.o
> >   CC    hw/ide/core.o
> >   CC    hw/ide/atapi.o
> >   CC    hw/ide/qdev.o
> >   CC    hw/ide/pci.o
> >   CC    hw/ide/isa.o
> >   CC    hw/ide/piix.o
> >   CC    hw/ide/microdrive.o
> >   CC    hw/ide/ahci.o
> >   CC    hw/ide/ich.o
> >   CC    hw/input/hid.o
> >   CC    hw/input/lm832x.o
> >   CC    hw/input/pckbd.o
> >   CC    hw/input/pl050.o
> >   CC    hw/input/ps2.o
> >   CC    hw/input/stellaris_input.o
> >   CC    hw/input/tsc2005.o
> >   CC    hw/input/vmmouse.o
> >   CC    hw/input/virtio-input.o
> >   CC    hw/input/virtio-input-hid.o
> >   CC    hw/input/virtio-input-host.o
> >   CC    hw/intc/i8259_common.o
> >   CC    hw/intc/i8259.o
> >   CC    hw/intc/pl190.o
> >   CC    hw/intc/imx_avic.o
> >   CC    hw/intc/realview_gic.o
> >   CC    hw/intc/ioapic_common.o
> >   CC    hw/intc/arm_gic_common.o
> >   CC    hw/intc/arm_gic.o
> >   CC    hw/intc/arm_gicv2m.o
> >   CC    hw/intc/arm_gicv3_common.o
> >   CC    hw/intc/arm_gicv3.o
> >   CC    hw/intc/arm_gicv3_dist.o
> >   CC    hw/intc/arm_gicv3_redist.o
> >   CC    hw/ipack/ipack.o
> >   CC    hw/ipack/tpci200.o
> >   CC    hw/ipmi/ipmi.o
> >   CC    hw/ipmi/ipmi_bmc_sim.o
> >   CC    hw/ipmi/ipmi_bmc_extern.o
> >   CC    hw/ipmi/isa_ipmi_kcs.o
> >   CC    hw/ipmi/isa_ipmi_bt.o
> >   CC    hw/isa/isa-bus.o
> >   CC    hw/isa/apm.o
> >   CC    hw/mem/pc-dimm.o
> >   CC    hw/mem/nvdimm.o
> >   CC    hw/misc/applesmc.o
> >   CC    hw/misc/max111x.o
> >   CC    hw/misc/tmp105.o
> >   CC    hw/misc/debugexit.o
> >   CC    hw/misc/sga.o
> >   CC    hw/misc/pc-testdev.o
> >   CC    hw/misc/pci-testdev.o
> >   CC    hw/misc/arm_l2x0.o
> >   CC    hw/misc/arm_integrator_debug.o
> >   CC    hw/misc/a9scu.o
> >   CC    hw/misc/arm11scu.o
> >   CC    hw/net/ne2000.o
> >   CC    hw/net/eepro100.o
> >   CC    hw/net/pcnet-pci.o
> >   CC    hw/net/pcnet.o
> >   CC    hw/net/e1000.o
> >   CC    hw/net/e1000x_common.o
> >   CC    hw/net/net_tx_pkt.o
> >   CC    hw/net/net_rx_pkt.o
> >   CC    hw/net/e1000e.o
> >   CC    hw/net/e1000e_core.o
> >   CC    hw/net/rtl8139.o
> >   CC    hw/net/vmxnet3.o
> >   CC    hw/net/smc91c111.o
> >   CC    hw/net/lan9118.o
> >   CC    hw/net/ne2000-isa.o
> >   CC    hw/net/xgmac.o
> >   CC    hw/net/allwinner_emac.o
> >   CC    hw/net/imx_fec.o
> >   CC    hw/net/cadence_gem.o
> >   CC    hw/net/stellaris_enet.o
> >   CC    hw/net/rocker/rocker.o
> >   CC    hw/net/rocker/rocker_fp.o
> >   CC    hw/net/rocker/rocker_desc.o
> >   CC    hw/net/rocker/rocker_world.o
> >   CC    hw/net/rocker/rocker_of_dpa.o
> >   CC    hw/nvram/eeprom93xx.o
> >   CC    hw/nvram/fw_cfg.o
> >   CC    hw/pci-bridge/pci_bridge_dev.o
> >   CC    hw/pci-bridge/pci_expander_bridge.o
> >   CC    hw/pci-bridge/xio3130_upstream.o
> >   CC    hw/pci-bridge/xio3130_downstream.o
> >   CC    hw/pci-bridge/ioh3420.o
> >   CC    hw/pci-bridge/i82801b11.o
> >   CC    hw/pci-host/pam.o
> >   CC    hw/pci-host/versatile.o
> > /tmp/qemu-test/src/hw/nvram/fw_cfg.c: In function ‘fw_cfg_dma_transfer’:
> > /tmp/qemu-test/src/hw/nvram/fw_cfg.c:330: warning: ‘read’ may be used uninitialized in this function
> >   CC    hw/pci-host/piix.o
> >   CC    hw/pci-host/q35.o
> >   CC    hw/pci-host/gpex.o
> >   CC    hw/pci/pci.o
> >   CC    hw/pci/pci_bridge.o
> >   CC    hw/pci/msix.o
> >   CC    hw/pci/msi.o
> >   CC    hw/pci/shpc.o
> >   CC    hw/pci/slotid_cap.o
> >   CC    hw/pci/pci_host.o
> >   CC    hw/pci/pcie_host.o
> >   CC    hw/pci/pcie.o
> >   CC    hw/pci/pcie_aer.o
> >   CC    hw/pci/pcie_port.o
> >   CC    hw/pci/pci-stub.o
> >   CC    hw/pcmcia/pcmcia.o
> >   CC    hw/scsi/scsi-disk.o
> >   CC    hw/scsi/scsi-generic.o
> >   CC    hw/scsi/scsi-bus.o
> >   CC    hw/scsi/lsi53c895a.o
> >   CC    hw/scsi/mptsas.o
> >   CC    hw/scsi/mptconfig.o
> >   CC    hw/scsi/mptendian.o
> >   CC    hw/scsi/megasas.o
> >   CC    hw/scsi/vmw_pvscsi.o
> >   CC    hw/scsi/esp.o
> >   CC    hw/scsi/esp-pci.o
> >   CC    hw/sd/pl181.o
> >   CC    hw/sd/ssi-sd.o
> >   CC    hw/sd/sd.o
> >   CC    hw/sd/core.o
> >   CC    hw/sd/sdhci.o
> >   CC    hw/smbios/smbios.o
> >   CC    hw/smbios/smbios_type_38.o
> >   CC    hw/ssi/pl022.o
> >   CC    hw/ssi/ssi.o
> >   CC    hw/ssi/xilinx_spips.o
> >   CC    hw/ssi/aspeed_smc.o
> >   CC    hw/timer/arm_timer.o
> >   CC    hw/timer/arm_mptimer.o
> >   CC    hw/timer/a9gtimer.o
> >   CC    hw/timer/cadence_ttc.o
> >   CC    hw/timer/ds1338.o
> >   CC    hw/timer/hpet.o
> >   CC    hw/timer/i8254_common.o
> >   CC    hw/timer/i8254.o
> >   CC    hw/timer/pl031.o
> >   CC    hw/timer/twl92230.o
> >   CC    hw/timer/imx_epit.o
> >   CC    hw/timer/imx_gpt.o
> >   CC    hw/timer/stm32f2xx_timer.o
> >   CC    hw/timer/aspeed_timer.o
> >   CC    hw/tpm/tpm_tis.o
> >   CC    hw/tpm/tpm_passthrough.o
> >   CC    hw/tpm/tpm_util.o
> >   CC    hw/usb/core.o
> >   CC    hw/usb/combined-packet.o
> >   CC    hw/usb/bus.o
> >   CC    hw/usb/libhw.o
> >   CC    hw/usb/desc.o
> >   CC    hw/usb/desc-msos.o
> >   CC    hw/usb/hcd-uhci.o
> >   CC    hw/usb/hcd-ohci.o
> >   CC    hw/usb/hcd-ehci.o
> >   CC    hw/usb/hcd-ehci-pci.o
> >   CC    hw/usb/hcd-ehci-sysbus.o
> >   CC    hw/usb/hcd-xhci.o
> >   CC    hw/usb/hcd-musb.o
> >   CC    hw/usb/dev-hub.o
> >   CC    hw/usb/dev-hid.o
> >   CC    hw/usb/dev-wacom.o
> >   CC    hw/usb/dev-storage.o
> >   CC    hw/usb/dev-uas.o
> >   CC    hw/usb/dev-audio.o
> >   CC    hw/usb/dev-serial.o
> >   CC    hw/usb/dev-network.o
> >   CC    hw/usb/dev-bluetooth.o
> >   CC    hw/usb/dev-smartcard-reader.o
> >   CC    hw/usb/dev-mtp.o
> >   CC    hw/usb/host-stub.o
> >   CC    hw/virtio/virtio-rng.o
> >   CC    hw/virtio/virtio-pci.o
> >   CC    hw/virtio/virtio-bus.o
> >   CC    hw/virtio/virtio-mmio.o
> >   CC    hw/watchdog/watchdog.o
> >   CC    hw/watchdog/wdt_i6300esb.o
> >   CC    hw/watchdog/wdt_ib700.o
> >   CC    migration/migration.o
> >   CC    migration/socket.o
> >   CC    migration/fd.o
> >   CC    migration/exec.o
> >   CC    migration/tls.o
> >   CC    migration/vmstate.o
> >   CC    migration/qemu-file.o
> >   CC    migration/qemu-file-channel.o
> >   CC    migration/xbzrle.o
> >   CC    migration/postcopy-ram.o
> >   CC    migration/qjson.o
> >   CC    migration/block.o
> >   CC    net/net.o
> >   CC    net/queue.o
> >   CC    net/checksum.o
> >   CC    net/util.o
> >   CC    net/hub.o
> >   CC    net/socket.o
> >   CC    net/dump.o
> >   CC    net/eth.o
> >   CC    net/l2tpv3.o
> >   CC    net/tap.o
> >   CC    net/vhost-user.o
> >   CC    net/tap-linux.o
> >   CC    net/slirp.o
> >   CC    net/filter.o
> >   CC    net/filter-buffer.o
> >   CC    net/filter-mirror.o
> >   CC    qom/cpu.o
> >   CC    replay/replay.o
> >   CC    replay/replay-internal.o
> >   CC    replay/replay-events.o
> >   CC    replay/replay-time.o
> >   CC    replay/replay-input.o
> >   CC    replay/replay-char.o
> >   CC    slirp/cksum.o
> >   CC    slirp/if.o
> > /tmp/qemu-test/src/replay/replay-internal.c: In function ‘replay_put_array’:
> > /tmp/qemu-test/src/replay/replay-internal.c:68: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
> >   CC    slirp/ip_icmp.o
> >   CC    slirp/ip6_icmp.o
> >   CC    slirp/ip6_input.o
> >   CC    slirp/ip6_output.o
> >   CC    slirp/ip_input.o
> >   CC    slirp/ip_output.o
> >   CC    slirp/dnssearch.o
> >   CC    slirp/dhcpv6.o
> >   CC    slirp/slirp.o
> >   CC    slirp/mbuf.o
> >   CC    slirp/misc.o
> >   CC    slirp/sbuf.o
> >   CC    slirp/socket.o
> >   CC    slirp/tcp_input.o
> >   CC    slirp/tcp_output.o
> >   CC    slirp/tcp_subr.o
> >   CC    slirp/tcp_timer.o
> >   CC    slirp/udp.o
> >   CC    slirp/udp6.o
> >   CC    slirp/bootp.o
> > /tmp/qemu-test/src/slirp/tcp_input.c: In function ‘tcp_input’:
> > /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_p’ may be used uninitialized in this function
> > /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_len’ may be used uninitialized in this function
> > /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_tos’ may be used uninitialized in this function
> > /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_id’ may be used uninitialized in this function
> > /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_off’ may be used uninitialized in this function
> > /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_ttl’ may be used uninitialized in this function
> > /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_sum’ may be used uninitialized in this function
> > /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_src.s_addr’ may be used uninitialized in this function
> > /tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_dst.s_addr’ may be used uninitialized in this function
> > /tmp/qemu-test/src/slirp/tcp_input.c:220: warning: ‘save_ip6.ip_nh’ may be used uninitialized in this function
> >   CC    slirp/tftp.o
> >   CC    slirp/arp_table.o
> >   CC    slirp/ndp_table.o
> >   CC    ui/keymaps.o
> >   CC    ui/console.o
> >   CC    ui/cursor.o
> >   CC    ui/qemu-pixman.o
> >   CC    ui/input.o
> >   CC    ui/input-keymap.o
> >   CC    ui/input-legacy.o
> >   CC    ui/input-linux.o
> >   CC    ui/sdl.o
> >   CC    ui/sdl_zoom.o
> >   CC    ui/x_keymap.o
> >   CC    ui/vnc.o
> >   CC    ui/vnc-enc-zlib.o
> >   CC    ui/vnc-enc-hextile.o
> >   CC    ui/vnc-enc-tight.o
> >   CC    ui/vnc-palette.o
> >   CC    ui/vnc-enc-zrle.o
> >   CC    ui/vnc-auth-vencrypt.o
> >   CC    ui/vnc-ws.o
> >   CC    ui/vnc-jobs.o
> >   LINK  tests/qemu-iotests/socket_scm_helper
> >   CC    qga/commands.o
> >   CC    qga/guest-agent-command-state.o
> >   CC    qga/main.o
> >   CC    qga/commands-posix.o
> >   CC    qga/channel-posix.o
> >   CC    qga/qapi-generated/qga-qapi-types.o
> >   CC    qga/qapi-generated/qga-qapi-visit.o
> >   CC    qga/qapi-generated/qga-qmp-marshal.o
> >   CC    qmp-introspect.o
> >   CC    qapi-types.o
> >   CC    qapi-visit.o
> >   CC    qapi-event.o
> >   AR    libqemustub.a
> >   CC    qemu-img.o
> >   CC    qmp-marshal.o
> >   CC    trace/generated-events.o
> >   AS    optionrom/multiboot.o
> >   AS    optionrom/linuxboot.o
> >   CC    optionrom/linuxboot_dma.o
> >   AS    optionrom/kvmvapic.o
> > cc: unrecognized option '-no-integrated-as'
> > cc: unrecognized option '-no-integrated-as'
> >   Building optionrom/linuxboot_dma.img
> >   Building optionrom/linuxboot_dma.raw
> >   Building optionrom/multiboot.img
> >   Building optionrom/linuxboot.img
> >   Building optionrom/kvmvapic.img
> >   Building optionrom/multiboot.raw
> >   Building optionrom/linuxboot.raw
> >   AR    libqemuutil.a
> >   Building optionrom/kvmvapic.raw
> >   Signing optionrom/linuxboot_dma.bin
> >   Signing optionrom/multiboot.bin
> >   Signing optionrom/linuxboot.bin
> >   Signing optionrom/kvmvapic.bin
> >   LINK  qemu-ga
> >   LINK  ivshmem-client
> >   LINK  ivshmem-server
> >   LINK  qemu-nbd
> >   LINK  qemu-img
> >   LINK  qemu-io
> >   LINK  qemu-bridge-helper
> >   GEN   x86_64-softmmu/hmp-commands.h
> >   GEN   x86_64-softmmu/hmp-commands-info.h
> >   GEN   x86_64-softmmu/qmp-commands-old.h
> >   GEN   x86_64-softmmu/config-target.h
> >   GEN   aarch64-softmmu/hmp-commands.h
> >   GEN   aarch64-softmmu/hmp-commands-info.h
> >   GEN   aarch64-softmmu/qmp-commands-old.h
> >   GEN   aarch64-softmmu/config-target.h
> >   CC    x86_64-softmmu/translate-all.o
> >   CC    x86_64-softmmu/exec.o
> >   CC    x86_64-softmmu/cpu-exec.o
> >   CC    x86_64-softmmu/translate-common.o
> >   CC    x86_64-softmmu/cpu-exec-common.o
> >   CC    x86_64-softmmu/tcg/tcg.o
> >   CC    x86_64-softmmu/tcg/tcg-op.o
> >   CC    x86_64-softmmu/tcg/optimize.o
> >   CC    x86_64-softmmu/tcg/tcg-common.o
> >   CC    x86_64-softmmu/fpu/softfloat.o
> >   CC    x86_64-softmmu/disas.o
> >   CC    x86_64-softmmu/arch_init.o
> >   CC    x86_64-softmmu/cpus.o
> >   CC    x86_64-softmmu/monitor.o
> >   CC    x86_64-softmmu/gdbstub.o
> >   CC    x86_64-softmmu/balloon.o
> >   CC    x86_64-softmmu/ioport.o
> >   CC    x86_64-softmmu/numa.o
> >   CC    x86_64-softmmu/qtest.o
> >   CC    x86_64-softmmu/bootdevice.o
> >   CC    x86_64-softmmu/kvm-all.o
> >   CC    x86_64-softmmu/memory.o
> >   CC    x86_64-softmmu/cputlb.o
> >   CC    x86_64-softmmu/memory_mapping.o
> >   CC    x86_64-softmmu/dump.o
> >   CC    x86_64-softmmu/migration/ram.o
> >   CC    x86_64-softmmu/migration/savevm.o
> >   CC    x86_64-softmmu/xen-common-stub.o
> >   CC    aarch64-softmmu/exec.o
> >   CC    aarch64-softmmu/translate-all.o
> >   CC    aarch64-softmmu/cpu-exec.o
> >   CC    aarch64-softmmu/translate-common.o
> >   CC    x86_64-softmmu/xen-hvm-stub.o
> >   CC    aarch64-softmmu/cpu-exec-common.o
> >   CC    x86_64-softmmu/hw/acpi/nvdimm.o
> >   CC    x86_64-softmmu/hw/block/virtio-blk.o
> >   CC    aarch64-softmmu/tcg/tcg.o
> >   CC    x86_64-softmmu/hw/block/dataplane/virtio-blk.o
> >   CC    x86_64-softmmu/hw/char/virtio-serial-bus.o
> >   CC    aarch64-softmmu/tcg/tcg-op.o
> >   CC    x86_64-softmmu/hw/core/nmi.o
> >   CC    x86_64-softmmu/hw/cpu/core.o
> >   CC    aarch64-softmmu/tcg/optimize.o
> >   CC    aarch64-softmmu/tcg/tcg-common.o
> >   CC    x86_64-softmmu/hw/display/vga.o
> >   CC    aarch64-softmmu/fpu/softfloat.o
> >   CC    aarch64-softmmu/disas.o
> >   GEN   aarch64-softmmu/gdbstub-xml.c
> >   CC    x86_64-softmmu/hw/display/virtio-gpu.o
> >   CC    x86_64-softmmu/hw/display/virtio-gpu-3d.o
> >   CC    aarch64-softmmu/kvm-stub.o
> >   CC    aarch64-softmmu/arch_init.o
> >   CC    aarch64-softmmu/cpus.o
> >   CC    aarch64-softmmu/monitor.o
> >   CC    x86_64-softmmu/hw/display/virtio-gpu-pci.o
> >   CC    aarch64-softmmu/gdbstub.o
> >   CC    aarch64-softmmu/balloon.o
> >   CC    aarch64-softmmu/ioport.o
> >   CC    aarch64-softmmu/numa.o
> >   CC    x86_64-softmmu/hw/display/virtio-vga.o
> >   CC    x86_64-softmmu/hw/intc/apic.o
> >   CC    x86_64-softmmu/hw/intc/apic_common.o
> >   CC    x86_64-softmmu/hw/intc/ioapic.o
> >   CC    x86_64-softmmu/hw/isa/lpc_ich9.o
> >   CC    x86_64-softmmu/hw/misc/vmport.o
> >   CC    x86_64-softmmu/hw/misc/ivshmem.o
> >   CC    x86_64-softmmu/hw/misc/pvpanic.o
> >   CC    x86_64-softmmu/hw/misc/edu.o
> >   CC    x86_64-softmmu/hw/misc/hyperv_testdev.o
> >   CC    x86_64-softmmu/hw/net/virtio-net.o
> >   CC    x86_64-softmmu/hw/net/vhost_net.o
> >   CC    aarch64-softmmu/qtest.o
> >   CC    x86_64-softmmu/hw/scsi/virtio-scsi.o
> >   CC    x86_64-softmmu/hw/scsi/virtio-scsi-dataplane.o
> >   CC    x86_64-softmmu/hw/scsi/vhost-scsi.o
> >   CC    x86_64-softmmu/hw/timer/mc146818rtc.o
> >   CC    x86_64-softmmu/hw/vfio/common.o
> >   CC    x86_64-softmmu/hw/vfio/pci.o
> >   CC    aarch64-softmmu/bootdevice.o
> >   CC    x86_64-softmmu/hw/vfio/pci-quirks.o
> >   CC    x86_64-softmmu/hw/vfio/platform.o
> >   CC    x86_64-softmmu/hw/vfio/calxeda-xgmac.o
> >   CC    x86_64-softmmu/hw/vfio/amd-xgbe.o
> >   CC    x86_64-softmmu/hw/vfio/spapr.o
> >   CC    aarch64-softmmu/memory.o
> >   CC    x86_64-softmmu/hw/virtio/virtio.o
> >   CC    x86_64-softmmu/hw/virtio/virtio-balloon.o
> >   CC    aarch64-softmmu/cputlb.o
> >   CC    x86_64-softmmu/hw/virtio/vhost.o
> >   CC    x86_64-softmmu/hw/virtio/vhost-backend.o
> >   CC    x86_64-softmmu/hw/virtio/vhost-user.o
> >   CC    x86_64-softmmu/hw/i386/multiboot.o
> >   CC    aarch64-softmmu/memory_mapping.o
> >   CC    x86_64-softmmu/hw/i386/pc.o
> >   CC    aarch64-softmmu/dump.o
> >   CC    x86_64-softmmu/hw/i386/pc_piix.o
> >   CC    aarch64-softmmu/migration/ram.o
> >   CC    aarch64-softmmu/migration/savevm.o
> >   CC    x86_64-softmmu/hw/i386/pc_q35.o
> >   CC    x86_64-softmmu/hw/i386/pc_sysfw.o
> >   CC    aarch64-softmmu/xen-common-stub.o
> >   CC    aarch64-softmmu/xen-hvm-stub.o
> > /tmp/qemu-test/src/hw/i386/pc_piix.c: In function ‘igd_passthrough_isa_bridge_create’:
> > /tmp/qemu-test/src/hw/i386/pc_piix.c:1037: warning: ‘pch_rev_id’ may be used uninitialized in this function
> >   CC    x86_64-softmmu/hw/i386/x86-iommu.o
> >   CC    x86_64-softmmu/hw/i386/intel_iommu.o
> >   CC    aarch64-softmmu/hw/block/virtio-blk.o
> >   CC    aarch64-softmmu/hw/block/dataplane/virtio-blk.o
> >   CC    x86_64-softmmu/hw/i386/kvmvapic.o
> >   CC    aarch64-softmmu/hw/char/exynos4210_uart.o
> >   CC    aarch64-softmmu/hw/char/omap_uart.o
> >   CC    aarch64-softmmu/hw/char/digic-uart.o
> >   CC    aarch64-softmmu/hw/char/stm32f2xx_usart.o
> >   CC    x86_64-softmmu/hw/i386/acpi-build.o
> >   CC    aarch64-softmmu/hw/char/bcm2835_aux.o
> >   CC    aarch64-softmmu/hw/char/virtio-serial-bus.o
> >   CC    x86_64-softmmu/hw/i386/pci-assign-load-rom.o
> >   CC    aarch64-softmmu/hw/core/nmi.o
> >   CC    aarch64-softmmu/hw/cpu/arm11mpcore.o
> >   CC    x86_64-softmmu/hw/i386/kvm/clock.o
> >   CC    aarch64-softmmu/hw/cpu/realview_mpcore.o
> >   CC    aarch64-softmmu/hw/cpu/a9mpcore.o
> >   CC    x86_64-softmmu/hw/i386/kvm/apic.o
> >   CC    aarch64-softmmu/hw/cpu/a15mpcore.o
> >   CC    x86_64-softmmu/hw/i386/kvm/i8259.o
> >   CC    aarch64-softmmu/hw/cpu/core.o
> >   CC    aarch64-softmmu/hw/display/omap_dss.o
> > /tmp/qemu-test/src/hw/i386/acpi-build.c: In function ‘build_append_pci_bus_devices’:
> > /tmp/qemu-test/src/hw/i386/acpi-build.c:471: warning: ‘notify_method’ may be used uninitialized in this function
> >   CC    x86_64-softmmu/hw/i386/kvm/ioapic.o
> >   CC    aarch64-softmmu/hw/display/omap_lcdc.o
> >   CC    x86_64-softmmu/hw/i386/kvm/i8254.o
> >   CC    x86_64-softmmu/hw/i386/kvm/pci-assign.o
> >   CC    x86_64-softmmu/target-i386/translate.o
> >   CC    aarch64-softmmu/hw/display/pxa2xx_lcd.o
> >   CC    aarch64-softmmu/hw/display/bcm2835_fb.o
> >   CC    aarch64-softmmu/hw/display/vga.o
> >   CC    aarch64-softmmu/hw/display/virtio-gpu.o
> >   CC    aarch64-softmmu/hw/display/virtio-gpu-3d.o
> >   CC    aarch64-softmmu/hw/display/virtio-gpu-pci.o
> >   CC    x86_64-softmmu/target-i386/helper.o
> >   CC    x86_64-softmmu/target-i386/cpu.o
> >   CC    x86_64-softmmu/target-i386/bpt_helper.o
> >   CC    x86_64-softmmu/target-i386/excp_helper.o
> >   CC    aarch64-softmmu/hw/display/dpcd.o
> >   CC    aarch64-softmmu/hw/display/xlnx_dp.o
> >   CC    x86_64-softmmu/target-i386/fpu_helper.o
> >   CC    aarch64-softmmu/hw/dma/xlnx_dpdma.o
> >   CC    x86_64-softmmu/target-i386/cc_helper.o
> >   CC    aarch64-softmmu/hw/dma/omap_dma.o
> >   CC    x86_64-softmmu/target-i386/int_helper.o
> >   CC    x86_64-softmmu/target-i386/svm_helper.o
> >   CC    aarch64-softmmu/hw/dma/soc_dma.o
> >   CC    x86_64-softmmu/target-i386/smm_helper.o
> >   CC    x86_64-softmmu/target-i386/misc_helper.o
> >   CC    aarch64-softmmu/hw/dma/pxa2xx_dma.o
> >   CC    aarch64-softmmu/hw/dma/bcm2835_dma.o
> >   CC    x86_64-softmmu/target-i386/mem_helper.o
> >   CC    aarch64-softmmu/hw/gpio/omap_gpio.o
> >   CC    aarch64-softmmu/hw/gpio/imx_gpio.o
> >   CC    x86_64-softmmu/target-i386/seg_helper.o
> >   CC    aarch64-softmmu/hw/i2c/omap_i2c.o
> >   CC    x86_64-softmmu/target-i386/mpx_helper.o
> >   CC    aarch64-softmmu/hw/input/pxa2xx_keypad.o
> >   CC    x86_64-softmmu/target-i386/gdbstub.o
> >   CC    aarch64-softmmu/hw/input/tsc210x.o
> >   CC    x86_64-softmmu/target-i386/machine.o
> >   CC    x86_64-softmmu/target-i386/arch_memory_mapping.o
> >   CC    x86_64-softmmu/target-i386/arch_dump.o
> >   CC    x86_64-softmmu/target-i386/monitor.o
> >   CC    aarch64-softmmu/hw/intc/armv7m_nvic.o
> >   CC    x86_64-softmmu/target-i386/kvm.o
> >   CC    x86_64-softmmu/target-i386/hyperv.o
> >   CC    aarch64-softmmu/hw/intc/exynos4210_gic.o
> >   CC    aarch64-softmmu/hw/intc/exynos4210_combiner.o
> >   GEN   trace/generated-helpers.c
> >   CC    aarch64-softmmu/hw/intc/omap_intc.o
> >   CC    x86_64-softmmu/trace/control-target.o
> >   CC    aarch64-softmmu/hw/intc/bcm2835_ic.o
> >   CC    aarch64-softmmu/hw/intc/bcm2836_control.o
> >   CC    aarch64-softmmu/hw/intc/allwinner-a10-pic.o
> >   CC    aarch64-softmmu/hw/intc/aspeed_vic.o
> >   CC    aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
> >   CC    aarch64-softmmu/hw/misc/ivshmem.o
> >   CC    aarch64-softmmu/hw/misc/arm_sysctl.o
> >   CC    aarch64-softmmu/hw/misc/cbus.o
> >   CC    aarch64-softmmu/hw/misc/exynos4210_pmu.o
> >   CC    aarch64-softmmu/hw/misc/imx_ccm.o
> >   CC    aarch64-softmmu/hw/misc/imx31_ccm.o
> >   CC    aarch64-softmmu/hw/misc/imx25_ccm.o
> >   CC    aarch64-softmmu/hw/misc/imx6_ccm.o
> >   CC    aarch64-softmmu/hw/misc/imx6_src.o
> >   CC    aarch64-softmmu/hw/misc/mst_fpga.o
> >   CC    aarch64-softmmu/hw/misc/omap_clk.o
> >   CC    aarch64-softmmu/hw/misc/omap_gpmc.o
> >   CC    aarch64-softmmu/hw/misc/omap_l4.o
> >   CC    aarch64-softmmu/hw/misc/omap_sdrc.o
> >   CC    aarch64-softmmu/hw/misc/omap_tap.o
> >   CC    x86_64-softmmu/trace/generated-helpers.o
> >   CC    aarch64-softmmu/hw/misc/bcm2835_mbox.o
> >   CC    aarch64-softmmu/hw/misc/bcm2835_property.o
> >   CC    aarch64-softmmu/hw/misc/zynq_slcr.o
> >   CC    aarch64-softmmu/hw/misc/zynq-xadc.o
> >   CC    aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
> >   CC    aarch64-softmmu/hw/misc/edu.o
> >   CC    aarch64-softmmu/hw/misc/auxbus.o
> >   CC    aarch64-softmmu/hw/misc/aspeed_scu.o
> >   CC    aarch64-softmmu/hw/net/virtio-net.o
> >   CC    aarch64-softmmu/hw/net/vhost_net.o
> >   CC    aarch64-softmmu/hw/pcmcia/pxa2xx.o
> >   CC    aarch64-softmmu/hw/scsi/virtio-scsi.o
> >   CC    aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
> >   CC    aarch64-softmmu/hw/scsi/vhost-scsi.o
> >   CC    aarch64-softmmu/hw/sd/omap_mmc.o
> >   CC    aarch64-softmmu/hw/sd/pxa2xx_mmci.o
> >   CC    aarch64-softmmu/hw/ssi/omap_spi.o
> >   CC    aarch64-softmmu/hw/ssi/imx_spi.o
> >   CC    aarch64-softmmu/hw/timer/exynos4210_mct.o
> >   CC    aarch64-softmmu/hw/timer/exynos4210_pwm.o
> >   CC    aarch64-softmmu/hw/timer/exynos4210_rtc.o
> >   CC    aarch64-softmmu/hw/timer/omap_gptimer.o
> >   CC    aarch64-softmmu/hw/timer/omap_synctimer.o
> >   CC    aarch64-softmmu/hw/timer/pxa2xx_timer.o
> >   CC    aarch64-softmmu/hw/timer/digic-timer.o
> >   CC    aarch64-softmmu/hw/timer/allwinner-a10-pit.o
> >   CC    aarch64-softmmu/hw/usb/tusb6010.o
> >   CC    aarch64-softmmu/hw/vfio/common.o
> >   CC    aarch64-softmmu/hw/vfio/pci.o
> >   CC    aarch64-softmmu/hw/vfio/pci-quirks.o
> >   CC    aarch64-softmmu/hw/vfio/platform.o
> >   LINK  x86_64-softmmu/qemu-system-x86_64
> >   CC    aarch64-softmmu/hw/vfio/calxeda-xgmac.o
> >   CC    aarch64-softmmu/hw/vfio/amd-xgbe.o
> >   CC    aarch64-softmmu/hw/vfio/spapr.o
> >   CC    aarch64-softmmu/hw/virtio/virtio.o
> >   CC    aarch64-softmmu/hw/virtio/virtio-balloon.o
> >   CC    aarch64-softmmu/hw/virtio/vhost.o
> >   CC    aarch64-softmmu/hw/virtio/vhost-backend.o
> >   CC    aarch64-softmmu/hw/virtio/vhost-user.o
> >   CC    aarch64-softmmu/hw/arm/boot.o
> >   CC    aarch64-softmmu/hw/arm/collie.o
> >   CC    aarch64-softmmu/hw/arm/exynos4_boards.o
> >   CC    aarch64-softmmu/hw/arm/gumstix.o
> >   CC    aarch64-softmmu/hw/arm/highbank.o
> >   CC    aarch64-softmmu/hw/arm/digic_boards.o
> >   CC    aarch64-softmmu/hw/arm/integratorcp.o
> >   CC    aarch64-softmmu/hw/arm/mainstone.o
> >   CC    aarch64-softmmu/hw/arm/musicpal.o
> >   CC    aarch64-softmmu/hw/arm/nseries.o
> >   CC    aarch64-softmmu/hw/arm/omap_sx1.o
> >   CC    aarch64-softmmu/hw/arm/palm.o
> >   CC    aarch64-softmmu/hw/arm/realview.o
> >   CC    aarch64-softmmu/hw/arm/spitz.o
> >   CC    aarch64-softmmu/hw/arm/stellaris.o
> >   CC    aarch64-softmmu/hw/arm/tosa.o
> >   CC    aarch64-softmmu/hw/arm/versatilepb.o
> >   CC    aarch64-softmmu/hw/arm/vexpress.o
> >   CC    aarch64-softmmu/hw/arm/virt.o
> >   CC    aarch64-softmmu/hw/arm/xilinx_zynq.o
> >   CC    aarch64-softmmu/hw/arm/z2.o
> >   CC    aarch64-softmmu/hw/arm/virt-acpi-build.o
> >   CC    aarch64-softmmu/hw/arm/netduino2.o
> >   CC    aarch64-softmmu/hw/arm/sysbus-fdt.o
> >   CC    aarch64-softmmu/hw/arm/armv7m.o
> >   CC    aarch64-softmmu/hw/arm/exynos4210.o
> >   CC    aarch64-softmmu/hw/arm/pxa2xx.o
> >   CC    aarch64-softmmu/hw/arm/pxa2xx_gpio.o
> >   CC    aarch64-softmmu/hw/arm/pxa2xx_pic.o
> >   CC    aarch64-softmmu/hw/arm/digic.o
> >   CC    aarch64-softmmu/hw/arm/omap1.o
> >   CC    aarch64-softmmu/hw/arm/omap2.o
> >   CC    aarch64-softmmu/hw/arm/strongarm.o
> >   CC    aarch64-softmmu/hw/arm/allwinner-a10.o
> >   CC    aarch64-softmmu/hw/arm/cubieboard.o
> >   CC    aarch64-softmmu/hw/arm/bcm2835_peripherals.o
> >   CC    aarch64-softmmu/hw/arm/bcm2836.o
> >   CC    aarch64-softmmu/hw/arm/raspi.o
> >   CC    aarch64-softmmu/hw/arm/stm32f205_soc.o
> >   CC    aarch64-softmmu/hw/arm/xlnx-zynqmp.o
> >   CC    aarch64-softmmu/hw/arm/xlnx-ep108.o
> >   CC    aarch64-softmmu/hw/arm/fsl-imx25.o
> >   CC    aarch64-softmmu/hw/arm/imx25_pdk.o
> >   CC    aarch64-softmmu/hw/arm/fsl-imx31.o
> >   CC    aarch64-softmmu/hw/arm/kzm.o
> >   CC    aarch64-softmmu/hw/arm/fsl-imx6.o
> >   CC    aarch64-softmmu/hw/arm/sabrelite.o
> >   CC    aarch64-softmmu/hw/arm/ast2400.o
> >   CC    aarch64-softmmu/hw/arm/palmetto-bmc.o
> >   CC    aarch64-softmmu/target-arm/arm-semi.o
> >   CC    aarch64-softmmu/target-arm/machine.o
> >   CC    aarch64-softmmu/target-arm/psci.o
> >   CC    aarch64-softmmu/target-arm/arch_dump.o
> >   CC    aarch64-softmmu/target-arm/monitor.o
> >   CC    aarch64-softmmu/target-arm/kvm-stub.o
> >   CC    aarch64-softmmu/target-arm/translate.o
> >   CC    aarch64-softmmu/target-arm/op_helper.o
> >   CC    aarch64-softmmu/target-arm/helper.o
> >   CC    aarch64-softmmu/target-arm/cpu.o
> >   CC    aarch64-softmmu/target-arm/neon_helper.o
> >   CC    aarch64-softmmu/target-arm/iwmmxt_helper.o
> >   CC    aarch64-softmmu/target-arm/gdbstub.o
> >   CC    aarch64-softmmu/target-arm/cpu64.o
> >   CC    aarch64-softmmu/target-arm/translate-a64.o
> >   CC    aarch64-softmmu/target-arm/helper-a64.o
> > /tmp/qemu-test/src/target-arm/translate-a64.c: In function ‘handle_shri_with_rndacc’:
> > /tmp/qemu-test/src/target-arm/translate-a64.c:6308: warning: ‘tcg_src_hi’ may be used uninitialized in this function
> > /tmp/qemu-test/src/target-arm/translate-a64.c: In function ‘disas_simd_scalar_two_reg_misc’:
> > /tmp/qemu-test/src/target-arm/translate-a64.c:8035: warning: ‘rmode’ may be used uninitialized in this function
> >   CC    aarch64-softmmu/target-arm/gdbstub64.o
> >   CC    aarch64-softmmu/target-arm/crypto_helper.o
> >   CC    aarch64-softmmu/target-arm/arm-powerctl.o
> >   GEN   trace/generated-helpers.c
> >   CC    aarch64-softmmu/trace/control-target.o
> >   CC    aarch64-softmmu/gdbstub-xml.o
> >   CC    aarch64-softmmu/trace/generated-helpers.o
> >   LINK  aarch64-softmmu/qemu-system-aarch64
> >   TEST  tests/qapi-schema/alternate-any.out
> >   TEST  tests/qapi-schema/alternate-array.out
> >   TEST  tests/qapi-schema/alternate-base.out
> >   TEST  tests/qapi-schema/alternate-clash.out
> >   TEST  tests/qapi-schema/alternate-conflict-dict.out
> >   TEST  tests/qapi-schema/alternate-conflict-string.out
> >   TEST  tests/qapi-schema/alternate-empty.out
> >   TEST  tests/qapi-schema/alternate-nested.out
> >   TEST  tests/qapi-schema/alternate-unknown.out
> >   TEST  tests/qapi-schema/args-alternate.out
> >   TEST  tests/qapi-schema/args-any.out
> >   TEST  tests/qapi-schema/args-array-empty.out
> >   TEST  tests/qapi-schema/args-array-unknown.out
> >   TEST  tests/qapi-schema/args-bad-boxed.out
> >   TEST  tests/qapi-schema/args-boxed-anon.out
> >   TEST  tests/qapi-schema/args-boxed-empty.out
> >   TEST  tests/qapi-schema/args-boxed-string.out
> >   TEST  tests/qapi-schema/args-int.out
> >   TEST  tests/qapi-schema/args-invalid.out
> >   TEST  tests/qapi-schema/args-member-array-bad.out
> >   TEST  tests/qapi-schema/args-member-case.out
> >   TEST  tests/qapi-schema/args-member-unknown.out
> >   TEST  tests/qapi-schema/args-name-clash.out
> >   TEST  tests/qapi-schema/args-union.out
> >   TEST  tests/qapi-schema/args-unknown.out
> >   TEST  tests/qapi-schema/bad-base.out
> >   TEST  tests/qapi-schema/bad-data.out
> >   TEST  tests/qapi-schema/bad-ident.out
> >   TEST  tests/qapi-schema/bad-type-bool.out
> >   TEST  tests/qapi-schema/bad-type-dict.out
> >   TEST  tests/qapi-schema/bad-type-int.out
> >   TEST  tests/qapi-schema/base-cycle-direct.out
> >   TEST  tests/qapi-schema/base-cycle-indirect.out
> >   TEST  tests/qapi-schema/command-int.out
> >   TEST  tests/qapi-schema/comments.out
> >   TEST  tests/qapi-schema/double-data.out
> >   TEST  tests/qapi-schema/double-type.out
> >   TEST  tests/qapi-schema/duplicate-key.out
> >   TEST  tests/qapi-schema/empty.out
> >   TEST  tests/qapi-schema/enum-bad-name.out
> >   TEST  tests/qapi-schema/enum-bad-prefix.out
> >   TEST  tests/qapi-schema/enum-clash-member.out
> >   TEST  tests/qapi-schema/enum-dict-member.out
> >   TEST  tests/qapi-schema/enum-int-member.out
> >   TEST  tests/qapi-schema/enum-member-case.out
> >   TEST  tests/qapi-schema/enum-missing-data.out
> >   TEST  tests/qapi-schema/enum-wrong-data.out
> >   TEST  tests/qapi-schema/escape-outside-string.out
> >   TEST  tests/qapi-schema/escape-too-big.out
> >   TEST  tests/qapi-schema/escape-too-short.out
> >   TEST  tests/qapi-schema/event-boxed-empty.out
> >   TEST  tests/qapi-schema/event-case.out
> >   TEST  tests/qapi-schema/event-nest-struct.out
> >   TEST  tests/qapi-schema/flat-union-array-branch.out
> >   TEST  tests/qapi-schema/flat-union-bad-base.out
> >   TEST  tests/qapi-schema/flat-union-bad-discriminator.out
> >   TEST  tests/qapi-schema/flat-union-base-any.out
> >   TEST  tests/qapi-schema/flat-union-base-union.out
> >   TEST  tests/qapi-schema/flat-union-empty.out
> >   TEST  tests/qapi-schema/flat-union-clash-member.out
> >   TEST  tests/qapi-schema/flat-union-incomplete-branch.out
> >   TEST  tests/qapi-schema/flat-union-inline.out
> >   TEST  tests/qapi-schema/flat-union-int-branch.out
> >   TEST  tests/qapi-schema/flat-union-invalid-branch-key.out
> >   TEST  tests/qapi-schema/flat-union-invalid-discriminator.out
> >   TEST  tests/qapi-schema/flat-union-no-base.out
> >   TEST  tests/qapi-schema/flat-union-optional-discriminator.out
> >   TEST  tests/qapi-schema/flat-union-string-discriminator.out
> >   TEST  tests/qapi-schema/funny-char.out
> >   TEST  tests/qapi-schema/ident-with-escape.out
> >   TEST  tests/qapi-schema/include-before-err.out
> >   TEST  tests/qapi-schema/include-cycle.out
> >   TEST  tests/qapi-schema/include-format-err.out
> >   TEST  tests/qapi-schema/include-nested-err.out
> >   TEST  tests/qapi-schema/include-no-file.out
> >   TEST  tests/qapi-schema/include-non-file.out
> >   TEST  tests/qapi-schema/include-relpath.out
> >   TEST  tests/qapi-schema/include-repetition.out
> >   TEST  tests/qapi-schema/include-self-cycle.out
> >   TEST  tests/qapi-schema/include-simple.out
> >   TEST  tests/qapi-schema/indented-expr.out
> >   TEST  tests/qapi-schema/leading-comma-list.out
> >   TEST  tests/qapi-schema/leading-comma-object.out
> >   TEST  tests/qapi-schema/missing-colon.out
> >   TEST  tests/qapi-schema/missing-comma-list.out
> >   TEST  tests/qapi-schema/missing-comma-object.out
> >   TEST  tests/qapi-schema/missing-type.out
> >   TEST  tests/qapi-schema/nested-struct-data.out
> >   TEST  tests/qapi-schema/non-objects.out
> >   TEST  tests/qapi-schema/qapi-schema-test.out
> >   TEST  tests/qapi-schema/quoted-structural-chars.out
> >   TEST  tests/qapi-schema/redefined-builtin.out
> >   TEST  tests/qapi-schema/redefined-command.out
> >   TEST  tests/qapi-schema/redefined-event.out
> >   TEST  tests/qapi-schema/redefined-type.out
> >   TEST  tests/qapi-schema/reserved-command-q.out
> >   TEST  tests/qapi-schema/reserved-enum-q.out
> >   TEST  tests/qapi-schema/reserved-member-has.out
> >   TEST  tests/qapi-schema/reserved-member-q.out
> >   TEST  tests/qapi-schema/reserved-member-u.out
> >   TEST  tests/qapi-schema/reserved-member-underscore.out
> >   TEST  tests/qapi-schema/reserved-type-kind.out
> >   TEST  tests/qapi-schema/reserved-type-list.out
> >   TEST  tests/qapi-schema/returns-alternate.out
> >   TEST  tests/qapi-schema/returns-array-bad.out
> >   TEST  tests/qapi-schema/returns-dict.out
> >   TEST  tests/qapi-schema/returns-unknown.out
> >   TEST  tests/qapi-schema/returns-whitelist.out
> >   TEST  tests/qapi-schema/struct-base-clash-deep.out
> >   TEST  tests/qapi-schema/struct-base-clash.out
> >   TEST  tests/qapi-schema/struct-data-invalid.out
> >   TEST  tests/qapi-schema/struct-member-invalid.out
> >   TEST  tests/qapi-schema/trailing-comma-list.out
> >   TEST  tests/qapi-schema/trailing-comma-object.out
> >   TEST  tests/qapi-schema/type-bypass-bad-gen.out
> >   TEST  tests/qapi-schema/unclosed-list.out
> >   TEST  tests/qapi-schema/unclosed-object.out
> >   TEST  tests/qapi-schema/unclosed-string.out
> >   TEST  tests/qapi-schema/unicode-str.out
> >   TEST  tests/qapi-schema/union-base-no-discriminator.out
> >   TEST  tests/qapi-schema/union-branch-case.out
> >   TEST  tests/qapi-schema/union-clash-branches.out
> >   TEST  tests/qapi-schema/union-empty.out
> >   TEST  tests/qapi-schema/union-invalid-base.out
> >   TEST  tests/qapi-schema/union-optional-branch.out
> >   TEST  tests/qapi-schema/union-unknown.out
> >   TEST  tests/qapi-schema/unknown-escape.out
> >   TEST  tests/qapi-schema/unknown-expr-key.out
> >   CC    tests/check-qdict.o
> >   CC    tests/check-qfloat.o
> >   CC    tests/check-qint.o
> >   CC    tests/check-qstring.o
> >   CC    tests/check-qlist.o
> >   CC    tests/check-qnull.o
> >   CC    tests/check-qjson.o
> >   CC    tests/test-qmp-output-visitor.o
> >   GEN   tests/test-qapi-visit.c
> >   GEN   tests/test-qapi-types.c
> >   GEN   tests/test-qapi-event.c
> >   GEN   tests/test-qmp-introspect.c
> >   CC    tests/test-clone-visitor.o
> >   CC    tests/test-qmp-input-visitor.o
> >   CC    tests/test-qmp-input-strict.o
> >   CC    tests/test-qmp-commands.o
> >   GEN   tests/test-qmp-marshal.c
> >   CC    tests/test-string-input-visitor.o
> >   CC    tests/test-string-output-visitor.o
> >   CC    tests/test-qmp-event.o
> >   CC    tests/test-opts-visitor.o
> >   CC    tests/test-coroutine.o
> >   CC    tests/test-visitor-serialization.o
> >   CC    tests/test-iov.o
> >   CC    tests/test-aio.o
> >   CC    tests/test-rfifolock.o
> >   CC    tests/test-throttle.o
> >   CC    tests/test-thread-pool.o
> >   CC    tests/test-hbitmap.o
> >   CC    tests/test-blockjob.o
> >   CC    tests/test-blockjob-txn.o
> >   CC    tests/test-x86-cpuid.o
> >   CC    tests/test-xbzrle.o
> >   CC    tests/test-vmstate.o
> >   CC    tests/test-cutils.o
> >   CC    tests/test-mul64.o
> >   CC    tests/test-int128.o
> >   CC    tests/rcutorture.o
> >   CC    tests/test-rcu-list.o
> >   CC    tests/test-qdist.o
> >   CC    tests/test-qht.o
> >   CC    tests/test-qht-par.o
> >   CC    tests/qht-bench.o
> > /tmp/qemu-test/src/tests/test-int128.c:180: warning: ‘__noclone__’ attribute directive ignored
> >   CC    tests/test-bitops.o
> >   CC    tests/check-qom-interface.o
> >   CC    tests/check-qom-proplist.o
> >   CC    tests/test-qemu-opts.o
> >   CC    tests/test-write-threshold.o
> >   CC    tests/test-crypto-hash.o
> >   CC    tests/test-crypto-cipher.o
> >   CC    tests/test-crypto-secret.o
> >   CC    tests/test-qga.o
> >   CC    tests/libqtest.o
> >   CC    tests/test-timed-average.o
> >   CC    tests/test-io-task.o
> >   CC    tests/test-io-channel-socket.o
> >   CC    tests/io-channel-helpers.o
> >   CC    tests/test-io-channel-file.o
> >   CC    tests/test-io-channel-command.o
> >   CC    tests/test-io-channel-buffer.o
> >   CC    tests/test-base64.o
> >   CC    tests/test-crypto-ivgen.o
> >   CC    tests/test-crypto-afsplit.o
> >   CC    tests/test-crypto-xts.o
> >   CC    tests/test-crypto-block.o
> >   CC    tests/test-logging.o
> >   CC    tests/vhost-user-test.o
> >   CC    tests/endianness-test.o
> >   CC    tests/fdc-test.o
> >   CC    tests/ide-test.o
> >   CC    tests/libqos/pci.o
> >   CC    tests/libqos/fw_cfg.o
> >   CC    tests/libqos/malloc.o
> >   CC    tests/libqos/i2c.o
> >   CC    tests/libqos/libqos.o
> >   CC    tests/libqos/pci-pc.o
> > /tmp/qemu-test/src/tests/ide-test.c: In function ‘cdrom_pio_impl’:
> > /tmp/qemu-test/src/tests/ide-test.c:739: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
> > /tmp/qemu-test/src/tests/ide-test.c: In function ‘test_cdrom_dma’:
> > /tmp/qemu-test/src/tests/ide-test.c:832: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
> >   CC    tests/libqos/malloc-pc.o
> >   CC    tests/libqos/libqos-pc.o
> >   CC    tests/libqos/ahci.o
> >   CC    tests/ahci-test.o
> >   CC    tests/hd-geo-test.o
> >   CC    tests/boot-order-test.o
> >   CC    tests/bios-tables-test.o
> >   CC    tests/boot-sector.o
> >   CC    tests/pxe-test.o
> >   CC    tests/rtc-test.o
> >   CC    tests/ipmi-kcs-test.o
> >   CC    tests/ipmi-bt-test.o
> >   CC    tests/i440fx-test.o
> >   CC    tests/fw_cfg-test.o
> > /tmp/qemu-test/src/tests/boot-sector.c: In function ‘boot_sector_init’:
> > /tmp/qemu-test/src/tests/boot-sector.c:80: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
> >   CC    tests/drive_del-test.o
> >   CC    tests/wdt_ib700-test.o
> >   CC    tests/tco-test.o
> >   CC    tests/e1000-test.o
> >   CC    tests/e1000e-test.o
> >   CC    tests/rtl8139-test.o
> >   CC    tests/pcnet-test.o
> >   CC    tests/eepro100-test.o
> >   CC    tests/ne2000-test.o
> >   CC    tests/nvme-test.o
> >   CC    tests/ac97-test.o
> >   CC    tests/es1370-test.o
> >   CC    tests/virtio-net-test.o
> >   CC    tests/libqos/virtio.o
> >   CC    tests/libqos/virtio-pci.o
> >   CC    tests/libqos/virtio-mmio.o
> >   CC    tests/libqos/malloc-generic.o
> >   CC    tests/virtio-balloon-test.o
> >   CC    tests/virtio-blk-test.o
> >   CC    tests/virtio-rng-test.o
> >   CC    tests/virtio-scsi-test.o
> >   CC    tests/virtio-serial-test.o
> >   CC    tests/virtio-console-test.o
> >   CC    tests/tpci200-test.o
> >   CC    tests/ipoctal232-test.o
> >   CC    tests/display-vga-test.o
> >   CC    tests/intel-hda-test.o
> >   CC    tests/ivshmem-test.o
> >   CC    tests/vmxnet3-test.o
> >   CC    tests/pvpanic-test.o
> >   CC    tests/i82801b11-test.o
> >   CC    tests/ioh3420-test.o
> >   CC    tests/usb-hcd-ohci-test.o
> >   CC    tests/libqos/usb.o
> >   CC    tests/usb-hcd-uhci-test.o
> >   CC    tests/usb-hcd-ehci-test.o
> >   CC    tests/usb-hcd-xhci-test.o
> >   CC    tests/pc-cpu-test.o
> >   CC    tests/q35-test.o
> >   CC    tests/test-netfilter.o
> >   CC    tests/test-filter-mirror.o
> >   CC    tests/test-filter-redirector.o
> >   CC    tests/postcopy-test.o
> >   CC    tests/device-introspect-test.o
> >   CC    tests/qom-test.o
> >   LINK  tests/check-qdict
> >   LINK  tests/check-qfloat
> >   LINK  tests/check-qint
> >   LINK  tests/check-qstring
> >   LINK  tests/check-qlist
> >   LINK  tests/check-qnull
> >   LINK  tests/check-qjson
> >   CC    tests/test-qapi-visit.o
> >   CC    tests/test-qapi-types.o
> >   CC    tests/test-qapi-event.o
> >   CC    tests/test-qmp-introspect.o
> >   CC    tests/test-qmp-marshal.o
> >   LINK  tests/test-coroutine
> >   LINK  tests/test-iov
> >   LINK  tests/test-aio
> >   LINK  tests/test-rfifolock
> >   LINK  tests/test-throttle
> >   LINK  tests/test-thread-pool
> >   LINK  tests/test-hbitmap
> >   LINK  tests/test-blockjob
> >   LINK  tests/test-blockjob-txn
> >   LINK  tests/test-x86-cpuid
> >   LINK  tests/test-xbzrle
> >   LINK  tests/test-vmstate
> >   LINK  tests/test-cutils
> >   LINK  tests/test-mul64
> >   LINK  tests/test-int128
> >   LINK  tests/rcutorture
> >   LINK  tests/test-rcu-list
> >   LINK  tests/test-qdist
> >   LINK  tests/test-qht
> >   LINK  tests/qht-bench
> >   LINK  tests/test-bitops
> >   LINK  tests/check-qom-interface
> >   LINK  tests/check-qom-proplist
> >   LINK  tests/test-qemu-opts
> >   LINK  tests/test-write-threshold
> >   LINK  tests/test-crypto-hash
> >   LINK  tests/test-crypto-cipher
> >   LINK  tests/test-crypto-secret
> >   LINK  tests/test-qga
> >   LINK  tests/test-timed-average
> >   LINK  tests/test-io-task
> >   LINK  tests/test-io-channel-socket
> >   LINK  tests/test-io-channel-file
> >   LINK  tests/test-io-channel-command
> >   LINK  tests/test-io-channel-buffer
> >   LINK  tests/test-base64
> >   LINK  tests/test-crypto-ivgen
> >   LINK  tests/test-crypto-afsplit
> >   LINK  tests/test-crypto-xts
> >   LINK  tests/test-crypto-block
> >   LINK  tests/test-logging
> >   LINK  tests/vhost-user-test
> >   LINK  tests/endianness-test
> >   LINK  tests/fdc-test
> >   LINK  tests/ide-test
> >   LINK  tests/ahci-test
> >   LINK  tests/hd-geo-test
> >   LINK  tests/boot-order-test
> >   LINK  tests/bios-tables-test
> >   LINK  tests/pxe-test
> >   LINK  tests/rtc-test
> >   LINK  tests/ipmi-kcs-test
> >   LINK  tests/ipmi-bt-test
> >   LINK  tests/i440fx-test
> >   LINK  tests/fw_cfg-test
> >   LINK  tests/drive_del-test
> >   LINK  tests/wdt_ib700-test
> >   LINK  tests/tco-test
> >   LINK  tests/e1000-test
> >   LINK  tests/e1000e-test
> >   LINK  tests/rtl8139-test
> >   LINK  tests/pcnet-test
> >   LINK  tests/eepro100-test
> >   LINK  tests/ne2000-test
> >   LINK  tests/nvme-test
> >   LINK  tests/ac97-test
> >   LINK  tests/es1370-test
> >   LINK  tests/virtio-net-test
> >   LINK  tests/virtio-balloon-test
> >   LINK  tests/virtio-blk-test
> >   LINK  tests/virtio-rng-test
> >   LINK  tests/virtio-scsi-test
> >   LINK  tests/virtio-serial-test
> >   LINK  tests/virtio-console-test
> >   LINK  tests/tpci200-test
> >   LINK  tests/ipoctal232-test
> >   LINK  tests/display-vga-test
> >   LINK  tests/intel-hda-test
> >   LINK  tests/ivshmem-test
> >   LINK  tests/vmxnet3-test
> >   LINK  tests/pvpanic-test
> >   LINK  tests/i82801b11-test
> >   LINK  tests/ioh3420-test
> >   LINK  tests/usb-hcd-ohci-test
> >   LINK  tests/usb-hcd-uhci-test
> >   LINK  tests/usb-hcd-ehci-test
> >   LINK  tests/usb-hcd-xhci-test
> >   LINK  tests/pc-cpu-test
> >   LINK  tests/q35-test
> >   LINK  tests/test-netfilter
> >   LINK  tests/test-filter-mirror
> >   LINK  tests/test-filter-redirector
> >   LINK  tests/postcopy-test
> >   LINK  tests/device-introspect-test
> >   LINK  tests/qom-test
> > GTESTER tests/check-qdict
> > GTESTER tests/check-qfloat
> > GTESTER tests/check-qint
> > GTESTER tests/check-qstring
> > GTESTER tests/check-qlist
> > GTESTER tests/check-qnull
> > GTESTER tests/check-qjson
> >   LINK  tests/test-qmp-output-visitor
> >   LINK  tests/test-clone-visitor
> >   LINK  tests/test-qmp-input-visitor
> >   LINK  tests/test-qmp-input-strict
> >   LINK  tests/test-qmp-commands
> >   LINK  tests/test-string-input-visitor
> >   LINK  tests/test-string-output-visitor
> >   LINK  tests/test-qmp-event
> >   LINK  tests/test-opts-visitor
> > GTESTER tests/test-coroutine
> >   LINK  tests/test-visitor-serialization
> > GTESTER tests/test-iov
> > GTESTER tests/test-aio
> > GTESTER tests/test-rfifolock
> > GTESTER tests/test-throttle
> > GTESTER tests/test-thread-pool
> > GTESTER tests/test-hbitmap
> > GTESTER tests/test-blockjob
> > GTESTER tests/test-blockjob-txn
> > GTESTER tests/test-x86-cpuid
> > GTESTER tests/test-xbzrle
> > GTESTER tests/test-vmstate
> > GTESTER tests/test-cutils
> > GTESTER tests/test-mul64
> > GTESTER tests/test-int128
> > GTESTER tests/rcutorture
> > GTESTER tests/test-rcu-list
> > GTESTER tests/test-qdist
> > GTESTER tests/test-qht
> >   LINK  tests/test-qht-par
> > GTESTER tests/test-bitops
> > GTESTER tests/check-qom-interface
> > GTESTER tests/check-qom-proplist
> > GTESTER tests/test-qemu-opts
> > GTESTER tests/test-write-threshold
> > GTESTER tests/test-crypto-hash
> > GTESTER tests/test-crypto-cipher
> > GTESTER tests/test-crypto-secret
> > GTESTER tests/test-qga
> > GTESTER tests/test-timed-average
> > GTESTER tests/test-io-task
> > GTESTER tests/test-io-channel-socket
> > GTESTER tests/test-io-channel-file
> > GTESTER tests/test-io-channel-command
> > GTESTER tests/test-io-channel-buffer
> > GTESTER tests/test-base64
> > GTESTER tests/test-crypto-ivgen
> > GTESTER tests/test-crypto-afsplit
> > GTESTER tests/test-crypto-xts
> > GTESTER tests/test-crypto-block
> > GTESTER tests/test-logging
> > GTESTER check-qtest-x86_64
> > GTESTER check-qtest-aarch64
> > GTESTER tests/test-qmp-output-visitor
> > GTESTER tests/test-clone-visitor
> > GTESTER tests/test-qmp-input-visitor
> > GTESTER tests/test-qmp-input-strict
> > GTESTER tests/test-qmp-commands
> > GTESTER tests/test-string-input-visitor
> > GTESTER tests/test-string-output-visitor
> > GTESTER tests/test-qmp-event
> > GTESTER tests/test-opts-visitor
> > GTESTER tests/test-visitor-serialization
> > GTESTER tests/test-qht-par
> > === OUTPUT END ===
> > 
> > Abort: command timeout (>3600 seconds)
> > 
> > 
> > ---
> > Email generated automatically by Patchew [http://patchew.org/].
> > Please send your feedback to patchew-devel@freelists.org
Greg Kurz Aug. 18, 2016, 5:06 p.m. UTC | #6
On Thu, 11 Aug 2016 10:43:11 +0530
P J P <ppandit@redhat.com> wrote:

> From: Prasad J Pandit <pjp@fedoraproject.org>
> 
> At various places in 9pfs back-end, it creates full path by
> concatenating two path strings. It could lead to a path
> traversal issue if one of the parameter was a relative path.
> Add check to avoid it.
> 
> Reported-by: Felix Wilhelm <fwilhelm@ernw.de>
> Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
> ---

With GDB attached to my QEMU, I could easily change the path names to have a
".." component just like a malicious guest would do, and cause the path traversal
issue to happen with renameat at least. And this patch indeed fixes the issue in
this case.

I'm still on holidays and I could not find time to do more testing and reviewing
though. But since the official linux 9p client does not send relative paths, I
don't expect any regression to happen if we apply the whole patch. I hence give:

Acked-by: Greg Kurz <groug@kaod.org>

Since this is a serious security issue, I shall send a pull request for this
patch tomorrow so that it gets into rc4. Also Cc'ing stable in case we deliver
another 2.6.x release one day.

If someone disagrees, please speak up ASAP.

Aneesh ? Michael ? Peter ?

>  hw/9pfs/9p-local.c | 31 +++++++++++++++++++++++++++----
>  1 file changed, 27 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
> index 3f271fc..c20331a 100644
> --- a/hw/9pfs/9p-local.c
> +++ b/hw/9pfs/9p-local.c
> @@ -493,6 +493,9 @@ static int local_mknod(FsContext *fs_ctx, V9fsPath *dir_path,
>      char *buffer = NULL;
>  
>      v9fs_string_init(&fullname);
> +    if (strstr(name, "../")) {
> +        return err;
> +    }
>      v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
>      path = fullname.data;
>  
> @@ -554,6 +557,9 @@ static int local_mkdir(FsContext *fs_ctx, V9fsPath *dir_path,
>      char *buffer = NULL;
>  
>      v9fs_string_init(&fullname);
> +    if (strstr(name, "../")) {
> +        return err;
> +    }
>      v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
>      path = fullname.data;
>  
> @@ -663,6 +669,9 @@ static int local_open2(FsContext *fs_ctx, V9fsPath *dir_path, const char *name,
>      flags |= O_NOFOLLOW;
>  
>      v9fs_string_init(&fullname);
> +    if (strstr(name, "../")) {
> +        return err;
> +    }
>      v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
>      path = fullname.data;
>  
> @@ -734,6 +743,9 @@ static int local_symlink(FsContext *fs_ctx, const char *oldpath,
>      char *buffer = NULL;
>  
>      v9fs_string_init(&fullname);
> +    if (strstr(name, "../")) {
> +        return err;
> +    }
>      v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
>      newpath = fullname.data;
>  
> @@ -830,11 +842,14 @@ out:
>  static int local_link(FsContext *ctx, V9fsPath *oldpath,
>                        V9fsPath *dirpath, const char *name)
>  {
> -    int ret;
> +    int ret = -1;
>      V9fsString newpath;
>      char *buffer, *buffer1;
>  
>      v9fs_string_init(&newpath);
> +    if (strstr(name, "../")) {
> +        return ret;
> +    }
>      v9fs_string_sprintf(&newpath, "%s/%s", dirpath->data, name);
>  
>      buffer = rpath(ctx, oldpath->data);
> @@ -1059,6 +1074,9 @@ static int local_lremovexattr(FsContext *ctx, V9fsPath *fs_path,
>  static int local_name_to_path(FsContext *ctx, V9fsPath *dir_path,
>                                const char *name, V9fsPath *target)
>  {
> +    if (strstr(name, "../")) {
> +        return -1;
> +    }
>      if (dir_path) {
>          v9fs_string_sprintf((V9fsString *)target, "%s/%s",
>                              dir_path->data, name);
> @@ -1074,12 +1092,15 @@ static int local_renameat(FsContext *ctx, V9fsPath *olddir,
>                            const char *old_name, V9fsPath *newdir,
>                            const char *new_name)
>  {
> -    int ret;
> +    int ret = -1;
>      V9fsString old_full_name, new_full_name;
>  
>      v9fs_string_init(&old_full_name);
>      v9fs_string_init(&new_full_name);
>  
> +    if (strstr(old_name, "../") || strstr(new_name, "../")) {
> +        return ret;
> +    }
>      v9fs_string_sprintf(&old_full_name, "%s/%s", olddir->data, old_name);
>      v9fs_string_sprintf(&new_full_name, "%s/%s", newdir->data, new_name);
>  
> @@ -1092,12 +1113,14 @@ static int local_renameat(FsContext *ctx, V9fsPath *olddir,
>  static int local_unlinkat(FsContext *ctx, V9fsPath *dir,
>                            const char *name, int flags)
>  {
> -    int ret;
> +    int ret = -1;
>      V9fsString fullname;
>      char *buffer;
>  
>      v9fs_string_init(&fullname);
> -
> +    if (strstr(name, "../")) {
> +        return ret;
> +    }
>      v9fs_string_sprintf(&fullname, "%s/%s", dir->data, name);
>      if (ctx->export_flags & V9FS_SM_MAPPED_FILE) {
>          if (flags == AT_REMOVEDIR) {
Peter Maydell Aug. 19, 2016, 2:55 p.m. UTC | #7
On 11 August 2016 at 06:13, P J P <ppandit@redhat.com> wrote:
> From: Prasad J Pandit <pjp@fedoraproject.org>
>
> At various places in 9pfs back-end, it creates full path by
> concatenating two path strings. It could lead to a path
> traversal issue if one of the parameter was a relative path.
> Add check to avoid it.
>
> Reported-by: Felix Wilhelm <fwilhelm@ernw.de>
> Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
> ---
>  hw/9pfs/9p-local.c | 31 +++++++++++++++++++++++++++----
>  1 file changed, 27 insertions(+), 4 deletions(-)
>
> diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
> index 3f271fc..c20331a 100644
> --- a/hw/9pfs/9p-local.c
> +++ b/hw/9pfs/9p-local.c
> @@ -493,6 +493,9 @@ static int local_mknod(FsContext *fs_ctx, V9fsPath *dir_path,
>      char *buffer = NULL;
>
>      v9fs_string_init(&fullname);
> +    if (strstr(name, "../")) {
> +        return err;
> +    }

I think we also need to set errno in these error paths: the functions
which call all these hooks in hw/9pfs/cofs.c all do:
          err = s->ops->mknod(&s->ctx, &fidp->path, name->data, &cred);
          if (err < 0) {
              err = -errno;
          } else {
              /* success path */
          }
          return err;

so we must set errno appropriately if we're going to return -1.

Also, strstr(name, "../") is the wrong check. There are I think
two possibilities here:

(1) the "name" parameter may only validly be a single pathname
component. In this case we should be enforcing this by treating
any string with a "/" in it as an error (and checking for "../"
is not catching all the cases that should be errors).

(2) the "name" parameter may be a multiple-pathname-component value.
In this case "../" catches too many cases, because "foo../bar" is
a valid string which is not relative. You would need to check for
(contains "/../" OR starts with "../" OR ends with "/.." OR is "..").


On IRC Greg and I discussed this and Greg suggested that
case (1) is what we have. We should check this though.

Finally: what about the functions in this file which
create a local filename by calling rpath() ? Are those
all definitely OK or do some or all of those also need
check code?

thanks
-- PMM
Peter Maydell Aug. 19, 2016, 3:14 p.m. UTC | #8
On 19 August 2016 at 15:55, Peter Maydell <peter.maydell@linaro.org> wrote:
> Also, strstr(name, "../") is the wrong check. There are I think
> two possibilities here:
>
> (1) the "name" parameter may only validly be a single pathname
> component. In this case we should be enforcing this by treating
> any string with a "/" in it as an error (and checking for "../"
> is not catching all the cases that should be errors).
>
> (2) the "name" parameter may be a multiple-pathname-component value.
> In this case "../" catches too many cases, because "foo../bar" is
> a valid string which is not relative. You would need to check for
> (contains "/../" OR starts with "../" OR ends with "/.." OR is "..").
>
>
> On IRC Greg and I discussed this and Greg suggested that
> case (1) is what we have. We should check this though.

If (1) is true and "only single path component" is a protocol
requirement then probably we should be enforcing this at a
higher layer than in 9p-local.c, ie in hw/9pfs/cofs.c.

thanks
-- PMM
Greg Kurz Aug. 19, 2016, 4:24 p.m. UTC | #9
On Fri, 19 Aug 2016 15:55:17 +0100
Peter Maydell <peter.maydell@linaro.org> wrote:

> On 11 August 2016 at 06:13, P J P <ppandit@redhat.com> wrote:
> > From: Prasad J Pandit <pjp@fedoraproject.org>
> >
> > At various places in 9pfs back-end, it creates full path by
> > concatenating two path strings. It could lead to a path
> > traversal issue if one of the parameter was a relative path.
> > Add check to avoid it.
> >
> > Reported-by: Felix Wilhelm <fwilhelm@ernw.de>
> > Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
> > ---
> >  hw/9pfs/9p-local.c | 31 +++++++++++++++++++++++++++----
> >  1 file changed, 27 insertions(+), 4 deletions(-)
> >
> > diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
> > index 3f271fc..c20331a 100644
> > --- a/hw/9pfs/9p-local.c
> > +++ b/hw/9pfs/9p-local.c
> > @@ -493,6 +493,9 @@ static int local_mknod(FsContext *fs_ctx, V9fsPath *dir_path,
> >      char *buffer = NULL;
> >
> >      v9fs_string_init(&fullname);
> > +    if (strstr(name, "../")) {
> > +        return err;
> > +    }  
> 
> I think we also need to set errno in these error paths: the functions
> which call all these hooks in hw/9pfs/cofs.c all do:
>           err = s->ops->mknod(&s->ctx, &fidp->path, name->data, &cred);
>           if (err < 0) {
>               err = -errno;
>           } else {
>               /* success path */
>           }
>           return err;
> 
> so we must set errno appropriately if we're going to return -1.
> 

Indeed. Thanks Peter for pointing this out !

> Also, strstr(name, "../") is the wrong check. There are I think
> two possibilities here:
> 
> (1) the "name" parameter may only validly be a single pathname
> component. In this case we should be enforcing this by treating
> any string with a "/" in it as an error (and checking for "../"
> is not catching all the cases that should be errors).
> 
> (2) the "name" parameter may be a multiple-pathname-component value.
> In this case "../" catches too many cases, because "foo../bar" is
> a valid string which is not relative. You would need to check for
> (contains "/../" OR starts with "../" OR ends with "/.." OR is "..").
> 
> 
> On IRC Greg and I discussed this and Greg suggested that
> case (1) is what we have. We should check this though.
> 

And this seems to be the case indeed when looking at:

http://man.cat-v.org/plan_9/5/walk

It is also ok for a system to reduce the valid character set
for path components according to:

http://man.cat-v.org/plan_9/5/intro

Peter's suggestion to forbid / in names seems the way to go.

> Finally: what about the functions in this file which
> create a local filename by calling rpath() ? Are those
> all definitely OK or do some or all of those also need
> check code?
> 

This needs a closer look.

> thanks
> -- PMM

Thanks for your assistance Peter !

--
Greg
Greg Kurz Aug. 19, 2016, 4:37 p.m. UTC | #10
On Fri, 19 Aug 2016 16:14:48 +0100
Peter Maydell <peter.maydell@linaro.org> wrote:

> On 19 August 2016 at 15:55, Peter Maydell <peter.maydell@linaro.org> wrote:
> > Also, strstr(name, "../") is the wrong check. There are I think
> > two possibilities here:
> >
> > (1) the "name" parameter may only validly be a single pathname
> > component. In this case we should be enforcing this by treating
> > any string with a "/" in it as an error (and checking for "../"
> > is not catching all the cases that should be errors).
> >
> > (2) the "name" parameter may be a multiple-pathname-component value.
> > In this case "../" catches too many cases, because "foo../bar" is
> > a valid string which is not relative. You would need to check for
> > (contains "/../" OR starts with "../" OR ends with "/.." OR is "..").
> >
> >
> > On IRC Greg and I discussed this and Greg suggested that
> > case (1) is what we have. We should check this though.  
> 
> If (1) is true and "only single path component" is a protocol
> requirement then probably we should be enforcing this at a
> higher layer than in 9p-local.c, ie in hw/9pfs/cofs.c.
> 

As we discussed on IRC, the / character isn't invalid per-se. It raises
issues with the local backend on a linux host but does not do harm with
other backends.

The proxy backend also accesses the linux filesystem but since it
chroots to the export path, it does not hit the path traversal issue.

Aneesh suggested an alternative to doing checks on the names would be
to forbid access outside the export path but I can't think of a simple
way to do that.

> thanks
> -- PMM

Cheers.

--
Greg
Peter Maydell Aug. 19, 2016, 5:03 p.m. UTC | #11
On 19 August 2016 at 17:37, Greg Kurz <groug@kaod.org> wrote:
> Peter Maydell <peter.maydell@linaro.org> wrote:
>> If (1) is true and "only single path component" is a protocol
>> requirement then probably we should be enforcing this at a
>> higher layer than in 9p-local.c, ie in hw/9pfs/cofs.c.

> As we discussed on IRC, the / character isn't invalid per-se. It raises
> issues with the local backend on a linux host but does not do harm with
> other backends.
>
> The proxy backend also accesses the linux filesystem but since it
> chroots to the export path, it does not hit the path traversal issue.

The proxy backend is not actually going to do the right thing with
a component name containing a '/' though (which would be to really
treat it as a filename or whatever with a '/', not to mis-interpret
it as a combined directory-and-filename. For instance opening "foo/bar"
ought to open a file named "foo/bar", not a file bar in directory foo,
if we're going to accept it.) It might not be a security hole, but
it still doesn't actually support '/' in filenames.

The handle backend also assumes '/' isn't in filenames.

'synth' might be able to handle '/' I guess, but I'd want to
audit the code before I put any weight on that assertion.

I don't really see the point in allowing a theoretical
/-in-names-aware backend to interact with an equally theoretical
/-in-names-aware frontend: nobody in practice is going to
use this. The downside of support in the middle-layer code for
this theoretical case is that we make it harder to write correct
backends and easy to accidentally allow security holes.
I'd prefer it if we made the check in the middle layer and
explicitly said "all QEMU 9p servers insist that '/' is not a
valid character in filenames, and backend code can assume that
the middle layer has validated this".

thanks
-- PMM
Greg Kurz Aug. 19, 2016, 5:30 p.m. UTC | #12
On Fri, 19 Aug 2016 18:03:29 +0100
Peter Maydell <peter.maydell@linaro.org> wrote:

> On 19 August 2016 at 17:37, Greg Kurz <groug@kaod.org> wrote:
> > Peter Maydell <peter.maydell@linaro.org> wrote:  
> >> If (1) is true and "only single path component" is a protocol
> >> requirement then probably we should be enforcing this at a
> >> higher layer than in 9p-local.c, ie in hw/9pfs/cofs.c.  
> 
> > As we discussed on IRC, the / character isn't invalid per-se. It raises
> > issues with the local backend on a linux host but does not do harm with
> > other backends.
> >
> > The proxy backend also accesses the linux filesystem but since it
> > chroots to the export path, it does not hit the path traversal issue.  
> 
> The proxy backend is not actually going to do the right thing with
> a component name containing a '/' though (which would be to really
> treat it as a filename or whatever with a '/', not to mis-interpret
> it as a combined directory-and-filename. For instance opening "foo/bar"
> ought to open a file named "foo/bar", not a file bar in directory foo,
> if we're going to accept it.) It might not be a security hole, but
> it still doesn't actually support '/' in filenames.
> 
> The handle backend also assumes '/' isn't in filenames.
> 
> 'synth' might be able to handle '/' I guess, but I'd want to
> audit the code before I put any weight on that assertion.
> 
> I don't really see the point in allowing a theoretical
> /-in-names-aware backend to interact with an equally theoretical
> /-in-names-aware frontend: nobody in practice is going to
> use this. The downside of support in the middle-layer code for
> this theoretical case is that we make it harder to write correct
> backends and easy to accidentally allow security holes.
> I'd prefer it if we made the check in the middle layer and
> explicitly said "all QEMU 9p servers insist that '/' is not a
> valid character in filenames, and backend code can assume that
> the middle layer has validated this".
> 
> thanks
> -- PMM

Maybe the check can even be made in the top layer then. I should spend
more time to see which is best.

My main concern now is that, unlike I said on IRC, I'm afraid I won't be
able to work on this before next Wednesday... :-\

Hope it is not too late for 2.7...

Cheers.

--
Greg
Peter Maydell Aug. 22, 2016, 9:23 a.m. UTC | #13
On 19 August 2016 at 18:30, Greg Kurz <groug@kaod.org> wrote:
> Maybe the check can even be made in the top layer then. I should spend
> more time to see which is best.
>
> My main concern now is that, unlike I said on IRC, I'm afraid I won't be
> able to work on this before next Wednesday... :-\
>
> Hope it is not too late for 2.7...

Opinions welcome on whether we need to hold 2.7 for this bug.

thanks
-- PMM
Prasad Pandit Aug. 22, 2016, 10:07 a.m. UTC | #14
Hello Peter, all

+-- On Mon, 22 Aug 2016, Peter Maydell wrote --+
| Opinions welcome on whether we need to hold 2.7 for this bug.

  I'm going through the VirtFS details to figure out a best fix for this 
issue. Nonetheless, IMO we need not hold 2.7 release for this bug.

Thank you.
--
Prasad J Pandit / Red Hat Product Security Team
47AF CE69 3A90 54AA 9045 1053 DD13 3D32 FE5B 041F
Michael S. Tsirkin Aug. 22, 2016, 2:14 p.m. UTC | #15
On Fri, Aug 19, 2016 at 06:03:29PM +0100, Peter Maydell wrote:
> On 19 August 2016 at 17:37, Greg Kurz <groug@kaod.org> wrote:
> > Peter Maydell <peter.maydell@linaro.org> wrote:
> >> If (1) is true and "only single path component" is a protocol
> >> requirement then probably we should be enforcing this at a
> >> higher layer than in 9p-local.c, ie in hw/9pfs/cofs.c.
> 
> > As we discussed on IRC, the / character isn't invalid per-se. It raises
> > issues with the local backend on a linux host but does not do harm with
> > other backends.
> >
> > The proxy backend also accesses the linux filesystem but since it
> > chroots to the export path, it does not hit the path traversal issue.
> 
> The proxy backend is not actually going to do the right thing with
> a component name containing a '/' though (which would be to really
> treat it as a filename or whatever with a '/', not to mis-interpret
> it as a combined directory-and-filename. For instance opening "foo/bar"
> ought to open a file named "foo/bar", not a file bar in directory foo,
> if we're going to accept it.) It might not be a security hole, but
> it still doesn't actually support '/' in filenames.
> 
> The handle backend also assumes '/' isn't in filenames.
> 
> 'synth' might be able to handle '/' I guess, but I'd want to
> audit the code before I put any weight on that assertion.
> 
> I don't really see the point in allowing a theoretical
> /-in-names-aware backend to interact with an equally theoretical
> /-in-names-aware frontend: nobody in practice is going to
> use this. The downside of support in the middle-layer code for
> this theoretical case is that we make it harder to write correct
> backends and easy to accidentally allow security holes.

FWIW I agree.

> I'd prefer it if we made the check in the middle layer and
> explicitly said "all QEMU 9p servers insist that '/' is not a
> valid character in filenames, and backend code can assume that
> the middle layer has validated this".
> 
> thanks
> -- PMM
Michael S. Tsirkin Aug. 22, 2016, 3:02 p.m. UTC | #16
On Mon, Aug 22, 2016 at 10:23:19AM +0100, Peter Maydell wrote:
> On 19 August 2016 at 18:30, Greg Kurz <groug@kaod.org> wrote:
> > Maybe the check can even be made in the top layer then. I should spend
> > more time to see which is best.
> >
> > My main concern now is that, unlike I said on IRC, I'm afraid I won't be
> > able to work on this before next Wednesday... :-\
> >
> > Hope it is not too late for 2.7...
> 
> Opinions welcome on whether we need to hold 2.7 for this bug.
> 
> thanks
> -- PMM

Not really sure, but balloon migration seems borken too,
and I'm trying to fix it up.
Peter Maydell Aug. 22, 2016, 3:07 p.m. UTC | #17
On 22 August 2016 at 16:02, Michael S. Tsirkin <mst@redhat.com> wrote:
> On Mon, Aug 22, 2016 at 10:23:19AM +0100, Peter Maydell wrote:
>> On 19 August 2016 at 18:30, Greg Kurz <groug@kaod.org> wrote:
>> > Maybe the check can even be made in the top layer then. I should spend
>> > more time to see which is best.
>> >
>> > My main concern now is that, unlike I said on IRC, I'm afraid I won't be
>> > able to work on this before next Wednesday... :-\
>> >
>> > Hope it is not too late for 2.7...
>>
>> Opinions welcome on whether we need to hold 2.7 for this bug.
>>
>> thanks
>> -- PMM
>
> Not really sure, but balloon migration seems borken too,
> and I'm trying to fix it up.

I've tagged rc4 this afternoon, so we have a few days to
sort out non-rushed fixes for both this and your bug
if necessary, and decide whether we need an rc5 or can
postpone the fixes to 2.7.1.

In both cases getting patches on-list by midweek or
thereabouts would be good.

thanks
-- PMM
diff mbox

Patch

diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
index 3f271fc..c20331a 100644
--- a/hw/9pfs/9p-local.c
+++ b/hw/9pfs/9p-local.c
@@ -493,6 +493,9 @@  static int local_mknod(FsContext *fs_ctx, V9fsPath *dir_path,
     char *buffer = NULL;
 
     v9fs_string_init(&fullname);
+    if (strstr(name, "../")) {
+        return err;
+    }
     v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
     path = fullname.data;
 
@@ -554,6 +557,9 @@  static int local_mkdir(FsContext *fs_ctx, V9fsPath *dir_path,
     char *buffer = NULL;
 
     v9fs_string_init(&fullname);
+    if (strstr(name, "../")) {
+        return err;
+    }
     v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
     path = fullname.data;
 
@@ -663,6 +669,9 @@  static int local_open2(FsContext *fs_ctx, V9fsPath *dir_path, const char *name,
     flags |= O_NOFOLLOW;
 
     v9fs_string_init(&fullname);
+    if (strstr(name, "../")) {
+        return err;
+    }
     v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
     path = fullname.data;
 
@@ -734,6 +743,9 @@  static int local_symlink(FsContext *fs_ctx, const char *oldpath,
     char *buffer = NULL;
 
     v9fs_string_init(&fullname);
+    if (strstr(name, "../")) {
+        return err;
+    }
     v9fs_string_sprintf(&fullname, "%s/%s", dir_path->data, name);
     newpath = fullname.data;
 
@@ -830,11 +842,14 @@  out:
 static int local_link(FsContext *ctx, V9fsPath *oldpath,
                       V9fsPath *dirpath, const char *name)
 {
-    int ret;
+    int ret = -1;
     V9fsString newpath;
     char *buffer, *buffer1;
 
     v9fs_string_init(&newpath);
+    if (strstr(name, "../")) {
+        return ret;
+    }
     v9fs_string_sprintf(&newpath, "%s/%s", dirpath->data, name);
 
     buffer = rpath(ctx, oldpath->data);
@@ -1059,6 +1074,9 @@  static int local_lremovexattr(FsContext *ctx, V9fsPath *fs_path,
 static int local_name_to_path(FsContext *ctx, V9fsPath *dir_path,
                               const char *name, V9fsPath *target)
 {
+    if (strstr(name, "../")) {
+        return -1;
+    }
     if (dir_path) {
         v9fs_string_sprintf((V9fsString *)target, "%s/%s",
                             dir_path->data, name);
@@ -1074,12 +1092,15 @@  static int local_renameat(FsContext *ctx, V9fsPath *olddir,
                           const char *old_name, V9fsPath *newdir,
                           const char *new_name)
 {
-    int ret;
+    int ret = -1;
     V9fsString old_full_name, new_full_name;
 
     v9fs_string_init(&old_full_name);
     v9fs_string_init(&new_full_name);
 
+    if (strstr(old_name, "../") || strstr(new_name, "../")) {
+        return ret;
+    }
     v9fs_string_sprintf(&old_full_name, "%s/%s", olddir->data, old_name);
     v9fs_string_sprintf(&new_full_name, "%s/%s", newdir->data, new_name);
 
@@ -1092,12 +1113,14 @@  static int local_renameat(FsContext *ctx, V9fsPath *olddir,
 static int local_unlinkat(FsContext *ctx, V9fsPath *dir,
                           const char *name, int flags)
 {
-    int ret;
+    int ret = -1;
     V9fsString fullname;
     char *buffer;
 
     v9fs_string_init(&fullname);
-
+    if (strstr(name, "../")) {
+        return ret;
+    }
     v9fs_string_sprintf(&fullname, "%s/%s", dir->data, name);
     if (ctx->export_flags & V9FS_SM_MAPPED_FILE) {
         if (flags == AT_REMOVEDIR) {