On Thu, Jun 23, 2011 at 11:16:47AM +0200, Alon Levy wrote:
> According to spice.proto the smartcard channel can receive acks and any
> other message defined in BaseChannel. While the spicec implementation didn't
> send an ACK spice-gtk does, so handle it.
> ---
> server/smartcard.c | 6 ++++++
> 1 files changed, 6 insertions(+), 0 deletions(-)
>
> diff --git a/server/smartcard.c b/server/smartcard.c
> index 888b23a..f948e5b 100644
> --- a/server/smartcard.c
> +++ b/server/smartcard.c
> @@ -454,6 +454,12 @@ static int smartcard_channel_handle_message(RedChannel
> *channel, SpiceDataHeader
> VSCMsgHeader* vheader = (VSCMsgHeader*)msg;
> SmartCardChannel* smartcard_channel = (SmartCardChannel*)channel;
>
> + if (header->type != SPICE_MSGC_SMARTCARD_DATA) {
> + /* handle ack's, spicy sends them while spicec does not */
> + return red_channel_handle_message(channel, header->size,
> header->type,
> + msg);
> + }
> +I couldn't figure out how other channels handle this, so ACK > ASSERT(header->size == vheader->length + sizeof(VSCMsgHeader)); There shouldn't be an ASSERT here though, since as far as I can tell, these values come directly from the network, so specially crafted messages could use this assert to take down QEMU. Christophe
pgplOujCwyWQo.pgp
Description: PGP signature
_______________________________________________ Spice-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/spice-devel
