pci_add nic -net use either the ID or option "name" of qemu_net_opts.
And there's our hole.  Reproducible with "-net user -net nic,id=foo
-device lsi,id=foo".

Oh.  Well.  Yes, better plug that.

@@ -242,6 +243,10 @@ DeviceState *qdev_device_add(QemuOpts *opts)
      qdev = qdev_create_from_info(bus, info);
      id = qemu_opts_id(opts);
      if (id) {
+        if (qdev_find_recursive(main_system_bus, id)) {
+            qerror_report(QERR_DUPLICATE_ID, id, "device");
+            return NULL;
+        }
          qdev->id = id;
      }
      if (qemu_opt_foreach(opts, set_property, qdev, 1) != 0) {

Looks good..

Acked-by: Gerd Hoffmann <kra...@redhat.com>

cheers,
  Gerd

Reply via email to