s390_pci_set_fid() sets zpci->fid_defined to true even when visit_type_uint32() failed. Reproducer: "-device zpci,fid=junk". Harmless in practice, because qdev_device_add() then fails, throwing away @zpci. Fix it anyway.
Cc: Matthew Rosato <mjros...@linux.ibm.com> Cc: Cornelia Huck <coh...@redhat.com> Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Matthew Rosato <mjros...@linux.ibm.com> Reviewed-by: Cornelia Huck <coh...@redhat.com> --- hw/s390x/s390-pci-bus.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c index 0517901024..07e1e4d7a3 100644 --- a/hw/s390x/s390-pci-bus.c +++ b/hw/s390x/s390-pci-bus.c @@ -1267,7 +1267,9 @@ static void s390_pci_set_fid(Object *obj, Visitor *v, const char *name, return; } - visit_type_uint32(v, name, ptr, errp); + if (!visit_type_uint32(v, name, ptr, errp)) { + return; + } zpci->fid_defined = true; } -- 2.26.2