BSocketMessenger: Fix size mismatch.
- The header size was accidentally being included in the flat buffer size, leading to a mismatch error when reading the incoming message.
This commit is contained in:
@@ -106,9 +106,9 @@ status_t
|
|||||||
BSocketMessenger::_SendMessage(const BMessage& message)
|
BSocketMessenger::_SendMessage(const BMessage& message)
|
||||||
{
|
{
|
||||||
ssize_t flatSize = message.FlattenedSize();
|
ssize_t flatSize = message.FlattenedSize();
|
||||||
flatSize += sizeof(ssize_t);
|
ssize_t totalSize = flatSize + sizeof(ssize_t);
|
||||||
|
|
||||||
char* buffer = new(std::nothrow) char[flatSize];
|
char* buffer = new(std::nothrow) char[totalSize];
|
||||||
if (buffer == NULL)
|
if (buffer == NULL)
|
||||||
return B_NO_MEMORY;
|
return B_NO_MEMORY;
|
||||||
|
|
||||||
@@ -119,7 +119,7 @@ BSocketMessenger::_SendMessage(const BMessage& message)
|
|||||||
if (error != B_OK)
|
if (error != B_OK)
|
||||||
return error;
|
return error;
|
||||||
|
|
||||||
ssize_t size = fSocket.Write(buffer, flatSize);
|
ssize_t size = fSocket.Write(buffer, totalSize);
|
||||||
if (size < 0)
|
if (size < 0)
|
||||||
return size;
|
return size;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user