# HG changeset patch # User František Kučera # Date 1650481188 -7200 # Node ID b0b7b6f1bc884060129bf8a4827b9192f7d20dcc # Parent 5a6828cfad41f1ae06ed9775ac7efac52811f1ff receive whole message, do not trim at the first 0x00 diff -r 5a6828cfad41 -r b0b7b6f1bc88 src/PosixMQ.h --- a/src/PosixMQ.h Wed Apr 20 02:27:05 2022 +0200 +++ b/src/PosixMQ.h Wed Apr 20 20:59:48 2022 +0200 @@ -58,7 +58,8 @@ memset(buffer, 0, MSG_SIZE + 1); ssize_t msgSize = mq_receive(handle, buffer, MSG_SIZE, nullptr); - if (msgSize >= 0) return std::string(buffer); + if (msgSize > sizeof (buffer))throw std::logic_error("Invalid PosixMQ message size."); + else if (msgSize >= 0) return std::string(buffer, msgSize); else throw std::logic_error("Unable to receive PosixMQ message from " + queueName + " error: " + strerror(errno)); }