src/PosixMQ.h
branchv_0
changeset 6 b0b7b6f1bc88
parent 3 be6f2e307a65
child 9 2f116bd15f27
--- 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));
 	}