[Spice-commits] server/stream-device.c
Frediano Ziglio
fziglio at kemper.freedesktop.org
Tue Oct 31 09:21:31 UTC 2017
server/stream-device.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit 1980dd5dd18d2e38342b31b423cecb09c4f3a977
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date: Tue Oct 31 09:47:46 2017 +0100
StreamDevice: Fix incomplete header reads
The code for reading a StreamDevice message from the streaming agent has
code to handle a situation where you only read a part of the header. If
we've read only a part of the header, we will try to read the remaining
n bytes of the header within a loop until the full header is read.
However, when we try to read the last n bytes, we store it at beginning
of the header struct, which will overwrite the first part of the header.
Signed-off-by: Jonathon Jongsma <jjongsma at redhat.com>
Acked-by: Frediano Ziglio <fziglio at redhat.com>
diff --git a/server/stream-device.c b/server/stream-device.c
index f87538d4..fc5b5065 100644
--- a/server/stream-device.c
+++ b/server/stream-device.c
@@ -81,7 +81,7 @@ stream_device_read_msg_from_dev(RedCharDevice *self, SpiceCharDeviceInstance *si
/* read header */
while (dev->hdr_pos < sizeof(dev->hdr)) {
- n = sif->read(sin, (uint8_t *) &dev->hdr, sizeof(dev->hdr) - dev->hdr_pos);
+ n = sif->read(sin, (uint8_t *) &dev->hdr + dev->hdr_pos, sizeof(dev->hdr) - dev->hdr_pos);
if (n <= 0) {
return NULL;
}
More information about the Spice-commits
mailing list