Amit Shah <amit.s...@redhat.com> writes: > Stuff the cpkt before calling send_control_msg(). it should not be > concerned about contents, just send across the buffer. > > A few code refactorings recently have made mkaing this change easier > than earlier. > > Coverity and clang have flagged this code several times in the past > (cpkt->id not set before send_control_event() passed it on to > send_control_msg()). This will finally eliminate the false-positive. > > CC: Markus Armbruster <arm...@redhat.com> > Signed-off-by: Amit Shah <amit.s...@redhat.com>
Patch makes sense to me, and the Coverity defect report is gone. 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); Reviewed-by: Markus Armbruster <arm...@redhat.com>