mirror of
https://github.com/gnif/LookingGlass.git
synced 2025-01-22 04:37:05 +00:00
[client] spice: fix incorrect message size for agent messages
This commit is contained in:
parent
ec0db86663
commit
1ebee561bc
@ -146,7 +146,7 @@ bool spice_agent_write_msg (uint32_t type, const void * buffer, const ssize_t si
|
|||||||
bool spice_read_nl (const struct SpiceChannel * channel, void * buffer, const ssize_t size);
|
bool spice_read_nl (const struct SpiceChannel * channel, void * buffer, const ssize_t size);
|
||||||
ssize_t spice_write_nl (const struct SpiceChannel * channel, const void * buffer, const ssize_t size);
|
ssize_t spice_write_nl (const struct SpiceChannel * channel, const void * buffer, const ssize_t size);
|
||||||
bool spice_discard_nl (const struct SpiceChannel * channel, ssize_t size);
|
bool spice_discard_nl (const struct SpiceChannel * channel, ssize_t size);
|
||||||
bool spice_write_msg_nl( struct SpiceChannel * channel, uint32_t type, const void * buffer, const ssize_t size);
|
bool spice_write_msg_nl( struct SpiceChannel * channel, uint32_t type, const void * buffer, const ssize_t size, const ssize_t extra);
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
@ -913,7 +913,7 @@ bool spice_agent_write_msg(uint32_t type, const void * buffer, const ssize_t siz
|
|||||||
msg.size = size;
|
msg.size = size;
|
||||||
|
|
||||||
LG_LOCK(spice.scMain.lock);
|
LG_LOCK(spice.scMain.lock);
|
||||||
if (!spice_write_msg_nl(&spice.scMain, SPICE_MSGC_MAIN_AGENT_DATA, &msg, sizeof(msg)))
|
if (!spice_write_msg_nl(&spice.scMain, SPICE_MSGC_MAIN_AGENT_DATA, &msg, sizeof(msg), size))
|
||||||
{
|
{
|
||||||
LG_UNLOCK(spice.scMain.lock);
|
LG_UNLOCK(spice.scMain.lock);
|
||||||
DEBUG_ERROR("failed to write agent data header");
|
DEBUG_ERROR("failed to write agent data header");
|
||||||
@ -961,7 +961,7 @@ inline bool spice_write_msg(struct SpiceChannel * channel, uint32_t type, const
|
|||||||
bool result;
|
bool result;
|
||||||
LG_LOCK(channel->lock);
|
LG_LOCK(channel->lock);
|
||||||
|
|
||||||
result = spice_write_msg_nl(channel, type, buffer, size);
|
result = spice_write_msg_nl(channel, type, buffer, size, 0);
|
||||||
|
|
||||||
LG_UNLOCK(channel->lock);
|
LG_UNLOCK(channel->lock);
|
||||||
return result;
|
return result;
|
||||||
@ -969,7 +969,7 @@ inline bool spice_write_msg(struct SpiceChannel * channel, uint32_t type, const
|
|||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
bool spice_write_msg_nl(struct SpiceChannel * channel, uint32_t type, const void * buffer, const ssize_t size)
|
bool spice_write_msg_nl(struct SpiceChannel * channel, uint32_t type, const void * buffer, const ssize_t size, const ssize_t extra)
|
||||||
{
|
{
|
||||||
if (!channel->ready)
|
if (!channel->ready)
|
||||||
{
|
{
|
||||||
@ -982,7 +982,7 @@ bool spice_write_msg_nl(struct SpiceChannel * channel, uint32_t type, const void
|
|||||||
SpiceMiniDataHeader header;
|
SpiceMiniDataHeader header;
|
||||||
++channel->serial;
|
++channel->serial;
|
||||||
header.type = type;
|
header.type = type;
|
||||||
header.size = size;
|
header.size = size + extra;
|
||||||
|
|
||||||
if (spice_write_nl(channel, &header, sizeof(header)) != sizeof(header))
|
if (spice_write_nl(channel, &header, sizeof(header)) != sizeof(header))
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user