From 6d4e35f60e211a7e8f9f8c07a9c6b4a5375964fb Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Sun, 1 May 2016 14:23:58 -0400 Subject: [PATCH] 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. --- src/kits/network/libnetapi/SocketMessenger.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/kits/network/libnetapi/SocketMessenger.cpp b/src/kits/network/libnetapi/SocketMessenger.cpp index 392d2507f3..553640c58d 100644 --- a/src/kits/network/libnetapi/SocketMessenger.cpp +++ b/src/kits/network/libnetapi/SocketMessenger.cpp @@ -106,9 +106,9 @@ status_t BSocketMessenger::_SendMessage(const BMessage& message) { 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) return B_NO_MEMORY; @@ -119,7 +119,7 @@ BSocketMessenger::_SendMessage(const BMessage& message) if (error != B_OK) return error; - ssize_t size = fSocket.Write(buffer, flatSize); + ssize_t size = fSocket.Write(buffer, totalSize); if (size < 0) return size;