If data message is followed by another message, it's theoretically possible that device loses the sync with the guest. The actual Qemu and streaming agent implementation avoids it, but better to make sure this can't happen in the server code too. Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> Acked-by: Christophe Fergeau <cfergeau@xxxxxxxxxx> --- server/stream-device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/stream-device.c b/server/stream-device.c index bbd8b941..abd198e4 100644 --- a/server/stream-device.c +++ b/server/stream-device.c @@ -281,7 +281,7 @@ handle_msg_data(StreamDevice *dev, SpiceCharDeviceInstance *sin) while (1) { uint8_t buf[16 * 1024]; - n = sif->read(sin, buf, sizeof(buf)); + n = sif->read(sin, buf, MIN(sizeof(buf), dev->hdr.size)); if (n <= 0) { break; } -- 2.14.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel