Hi Hans,<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Dec 2, 2012 at 12:26 PM, Hans de Goede <span dir="ltr"><<a href="mailto:hdegoede@redhat.com" target="_blank">hdegoede@redhat.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I think that you also need to change spicevmc_red_channel_alloc_msg_rcv_buf,<br>
because now it will allocate a spice_char_device_write_buffer to hold the<br>
event message, which seems the wrong thing to do, and since when handling<br>
the event message you don't set  state->recv_from_client_buf = NULL, the<br>
next message received on the channel will trigger this assert:<br>
<br>
    assert(!state->recv_from_<u></u>client_buf);<br>
<br>
In spicevmc_red_channel_alloc_<u></u>msg_rcv_buf, I think this does not happen<br>
in your testing since you only close the port once, and then send no<br>
more data.<br></blockquote><div> </div><div>It's a valid concern but it doesn't happen, because it is released by the following callback:<br><br>(gdb) bt<br>#0  spicevmc_red_channel_release_msg_rcv_buf (rcc=0x55555666a3f0, type=201, size=1, <br>
    msg=0x5555568f0330 "\002\327q\363\377\177") at spicevmc.c:338<br>#1  0x00007ffff40df010 in red_peer_handle_incoming (stream=0x555556932770, <br>    handler=0x55555666e500) at red_channel.c:280<br>#2  0x00007ffff40df0ae in red_channel_client_receive (rcc=0x55555666a3f0)<br>
    at red_channel.c:294<br>#3  0x00007ffff40e1e44 in red_channel_client_event (fd=28, event=1, <br>    data=0x55555666a3f0) at red_channel.c:1204SPICE_MSG_PORT_INIT, item);<br><br>cheers<br></div></div><br clear="all"><br>
-- <br>Marc-André Lureau<br>
</div>