qemu-e2k/hw/net
Markus Armbruster 5a0948d36c net/virtio: Fix failover error handling crash bugs
Functions that take an Error ** parameter to pass an error to the
caller expect the parameter to point to null.
failover_replug_primary() violates this precondition in several
places:

* After qemu_opts_from_qdict() failed, *errp is no longer null.
  Passing it to error_setg() is wrong, and will trip the assertion in
  error_setv().  Messed up in commit 150ab54aa6 "net/virtio: fix
  re-plugging of primary device".  Simply drop the error_setg().

* Passing @errp to qemu_opt_set_bool(), hotplug_handler_pre_plug(),
  and hotplug_handler_plug() is wrong.  If one of the first two fails,
  *errp is no longer null.  Risks tripping the same assertion.
  Moreover, continuing after such errors is unsafe.  Messed up in
  commit 9711cd0dfc "net/virtio: add failover support".  Fix by
  handling each error properly.

failover_replug_primary() crashes when passed a null @errp.  Also
messed up in commit 9711cd0dfc.  This bug can't bite as no caller
actually passes null.  Fix it anyway.

Fixes: 9711cd0dfc
Fixes: 150ab54aa6
Cc: Jens Freimann <jfreimann@redhat.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20191130194240.10517-3-armbru@redhat.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
2019-12-02 16:14:38 +01:00
..
can
fsl_etsec hw/net/fsl_etsec/etsec.c: Switch to transaction-based ptimer API 2019-10-24 17:16:28 +01:00
rocker
Kconfig net: add tulip (dec21143) driver 2019-10-29 10:28:07 +08:00
Makefile.objs net: add tulip (dec21143) driver 2019-10-29 10:28:07 +08:00
allwinner_emac.c
cadence_gem.c net/cadence_gem: Set PHY autonegotiation restart status 2019-11-19 13:20:27 +00:00
dp8393x.c dp8393x: fix dp8393x_receive() 2019-11-08 21:32:31 +01:00
e1000.c
e1000_regs.h
e1000e.c
e1000e_core.c
e1000e_core.h
e1000x_common.c
e1000x_common.h
eepro100.c
etraxfs_eth.c
ftgmac100.c aspeed: add support for the Aspeed MII controller of the AST2600 2019-10-15 18:09:05 +01:00
imx_fec.c
lan9118.c hw/net/lan9118.c: Switch to transaction-based ptimer API 2019-10-15 18:09:03 +01:00
lance.c
mcf_fec.c
milkymist-minimac2.c
mipsnet.c
ne2000-isa.c
ne2000-pci.c
ne2000.c
ne2000.h
net_rx_pkt.c
net_rx_pkt.h
net_tx_pkt.c
net_tx_pkt.h
opencores_eth.c
pcnet-pci.c
pcnet.c
pcnet.h
rtl8139.c
smc91c111.c
spapr_llan.c
stellaris_enet.c
sungem.c
sunhme.c
trace-events net: add tulip (dec21143) driver 2019-10-29 10:28:07 +08:00
tulip.c net: add tulip (dec21143) driver 2019-10-29 10:28:07 +08:00
tulip.h net: add tulip (dec21143) driver 2019-10-29 10:28:07 +08:00
vhost_net-stub.c
vhost_net.c vhost_net: enable packed ring support 2019-10-25 07:46:22 -04:00
virtio-net.c net/virtio: Fix failover error handling crash bugs 2019-12-02 16:14:38 +01:00
vmware_utils.h
vmxnet3.c
vmxnet3.h
vmxnet3_defs.h
vmxnet_debug.h
xen_nic.c
xgmac.c
xilinx_axienet.c
xilinx_ethlite.c