On (Wed) 29 Oct 2014 [17:32:27], Marc-André Lureau wrote: > It seems "name" is not mandatory, and the following command line (based > on one generated by current libvirt) will crash qemu at start: > > qemu-system-x86_64 \ > -device virtio-serial-pci \ > -device virtserialport,name=foo \ > -device virtconsole > > Program received signal SIGSEGV, Segmentation fault. > __strcmp_ssse3 () at ../sysdeps/x86_64/strcmp.S:210 > 210 movlpd (%rsi), %xmm2 > Missing separate debuginfos, use: debuginfo-install > python-libs-2.7.5-13.fc20.x86_64 > (gdb) bt > #0 __strcmp_ssse3 () at ../sysdeps/x86_64/strcmp.S:210 > #1 0x000055555566bdc6 in find_port_by_name (name=0x0) at > /home/elmarco/src/qemu/hw/char/virtio-serial-bus.c:67
Oops, I wonder how this went unnoticed so far. Reviewed-by: Amit Shah <amit.s...@redhat.com> > --- > hw/char/virtio-serial-bus.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/char/virtio-serial-bus.c b/hw/char/virtio-serial-bus.c > index 3931085..f16452e 100644 > --- a/hw/char/virtio-serial-bus.c > +++ b/hw/char/virtio-serial-bus.c > @@ -871,7 +871,7 @@ static void virtser_port_device_realize(DeviceState *dev, > Error **errp) > return; > } > > - if (find_port_by_name(port->name)) { > + if (port->name != NULL && find_port_by_name(port->name)) { btw the != NULL could be safely dropped w/o altering the meaning. Thanks, Amit