On Fri, 2015-11-06 at 08:48 +0100, Victor Toso wrote: > Hi, > > On Thu, Nov 05, 2015 at 04:58:31PM +0100, Pavel Grunt wrote: > > Same approach as in spice_server_char_device_wakeup(). > > Avoid segmentation fault when the webdav channel (spice port channel) is > > used with the vnc display: > > #0 0x00007ffff7aab734 in spice_char_device_state_opaque_get (dev=0x0) > > at char_device.c:720 > > #1 0x00007ffff7b0850c in spice_server_port_event (sin=<optimized out>, > > event=<optimized out>) at spicevmc.c:578 > > #2 0x0000555555787ba4 in set_guest_connected (port=<optimized out>, > > guest_connected=1) at hw/char/virtio-console.c:89 > > #3 0x0000555555678d7c in control_out (len=<optimized out>, > > buf=0x55555775c3a0, vser=0x5555578d1540) at > > /home/pgrunt/RH/qemu/hw/char/virtio-serial-bus.c:404 > > #4 0x0000555555678d7c in control_out (vdev=0x5555578d1540, > > vq=0x555557941bc8) > > at /home/pgrunt/RH/qemu/hw/char/virtio-serial-bus.c:441 > > #5 0x000055555588eb98 in aio_dispatch (ctx=0x5555562e1a50) at aio- > > posix.c:160 > > #6 0x00005555558829ee in aio_ctx_dispatch (source=<optimized out>, > > callback=<optimized out>, user_data=<optimized out>) at async.c:226 > > #7 0x00007ffff2010e3a in g_main_context_dispatch () at /lib64/libglib- > > 2.0.so.0 > > #8 0x000055555588d8fb in main_loop_wait () at main-loop.c:211 > > #9 0x000055555588d8fb in main_loop_wait (timeout=<optimized out>) > > at main-loop.c:256 > > #10 0x000055555588d8fb in main_loop_wait (nonblocking=<optimized out>) > > at main-loop.c:504 > > #11 0x000055555561b664 in main () at vl.c:1891 > > --- > > server/spicevmc.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/server/spicevmc.c b/server/spicevmc.c > > index e10f183..6ac1561 100644 > > --- a/server/spicevmc.c > > +++ b/server/spicevmc.c > > @@ -569,6 +569,11 @@ SPICE_GNUC_VISIBLE void > > spice_server_port_event(SpiceCharDeviceInstance *sin, ui > > { > > SpiceVmcState *state; > > > > + if (sin->st == NULL) { > > + spice_warning("no SpiceCharDeviceState attached to instance %p", > > sin); > > + return; > > + } > > + > > Looks good to me. > > > state = (SpiceVmcState *)spice_char_device_state_opaque_get(sin->st); > > if (event == SPICE_PORT_EVENT_OPENED) { > > state->port_opened = TRUE; Pushed as 6ebb2ebe2a76fc56c0a965d07cbdc66315192bc6 Thanks, Pavel _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel