qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 02/21] net/virtio: Fix failover error handling crash bugs


From: Jens Freimann
Subject: Re: [PATCH 02/21] net/virtio: Fix failover error handling crash bugs
Date: Mon, 2 Dec 2019 10:53:22 +0100
User-agent: NeoMutt/20180716-1376-5d6ed1

On Sat, Nov 30, 2019 at 08:42:21PM +0100, Markus Armbruster wrote:
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: 9711cd0dfc3fa414f7f64935713c07134ae67971
Fixes: 150ab54aa6934583180f88a2bd540bc6fc4fbff3
Cc: Jens Freimann <address@hidden>
Cc: Michael S. Tsirkin <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>
---
hw/net/virtio-net.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)


Thanks Markus!

Reviewed-by: Jens Freimann <address@hidden>





reply via email to

[Prev in Thread] Current Thread [Next in Thread]