summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/agent.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/common/agent.c b/common/agent.c
index e29fdcd..3894c7f 100644
--- a/common/agent.c
+++ b/common/agent.c
@@ -132,8 +132,8 @@ static void uint16_from_le(uint8_t *_msg, uint32_t size, uint32_t offset)
uint32_t i;
uint16_unaligned_t *msg = (uint16_unaligned_t *)(_msg + offset);
- /* offset - size % 2 should be 0 - extra bytes are ignored */
- for (i = 0; i < (size - offset) / 2; i++) {
+ /* size % 2 should be 0 - extra bytes are ignored */
+ for (i = 0; i < size / 2; i++) {
FIX_ENDIAN16(msg[i].v);
}
}
@@ -143,8 +143,8 @@ static void uint32_from_le(uint8_t *_msg, uint32_t size, uint32_t offset)
uint32_t i;
uint32_unaligned_t *msg = (uint32_unaligned_t *)(_msg + offset);
- /* offset - size % 4 should be 0 - extra bytes are ignored */
- for (i = 0; i < (size - offset) / 4; i++) {
+ /* size % 4 should be 0 - extra bytes are ignored */
+ for (i = 0; i < size / 4; i++) {
FIX_ENDIAN32(msg[i].v);
}
}
@@ -168,7 +168,7 @@ agent_message_clipboard_from_le(const VDAgentMessage *message_header, uint8_t *d
FIX_ENDIAN32(data_type->v);
break;
case VD_AGENT_CLIPBOARD_GRAB:
- uint32_from_le(data, message_header->size, min_size);
+ uint32_from_le(data, message_header->size - min_size, min_size);
break;
case VD_AGENT_CLIPBOARD_RELEASE:
// empty
@@ -318,7 +318,7 @@ agent_check_message(const VDAgentMessage *message_header, uint8_t *message,
if (vdata->nchannels > max_channels) {
return AGENT_CHECK_TRUNCATED;
}
- uint16_from_le(message, message_header->size, sizeof(*vdata));
+ uint16_from_le(message, message_header->size - sizeof(*vdata), sizeof(*vdata));
break;
}
default: