Amit Shah <amit.s...@redhat.com> writes: > On (Mon) 17 Dec 2012 [18:23:53], Markus Armbruster wrote: >> >> However, it now worries find_port_by_id() in remove_port() could return >> >> a null pointer, which is then dereferenced. No idea why it didn't >> >> report that before. Obvious suppressor: >> >> >> >> diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c >> >> index 47d0481..7ff7505 100644 >> >> --- a/hw/virtio-serial-bus.c >> >> +++ b/hw/virtio-serial-bus.c >> >> @@ -826,6 +826,7 @@ static void remove_port(VirtIOSerial *vser, >> >> uint32_t port_id) >> >> vser->ports_map[i] &= ~(1U << (port_id % 32)); >> >> >> >> port = find_port_by_id(vser, port_id); >> >> + assert(port); >> >> /* Flush out any unconsumed buffers first */ >> >> discard_vq_data(port->ovq, &port->vser->vdev); >> > >> > remove_port() is called by the hot-unplug qdev callback, and if the >> > port's missing from our tailq, something's gone wrong anyway. So this >> > patch makes sense too. >> >> Will you take care of that, or do you want me to post the patch? > > I was going to, but if you want to, go ahead -- you already have the > patch ready :)
Happy to leave it to you.