From 2067e6fe923c2797c327aa0caeedb599ed432805 Mon Sep 17 00:00:00 2001 From: tomoaki Date: Sat, 24 Aug 2019 17:33:42 +0900 Subject: [PATCH] Validate MsgId of PUBLISH MsgId of QoS0 or QoS-1 should be 0. Signed-off-by: tomoaki --- MQTTSNGateway/src/MQTTSNGWPublishHandler.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/MQTTSNGateway/src/MQTTSNGWPublishHandler.cpp b/MQTTSNGateway/src/MQTTSNGWPublishHandler.cpp index 3162f04..98d917a 100644 --- a/MQTTSNGateway/src/MQTTSNGWPublishHandler.cpp +++ b/MQTTSNGateway/src/MQTTSNGWPublishHandler.cpp @@ -94,6 +94,12 @@ MQTTGWPacket* MQTTSNPublishHandler::handlePublish(Client* client, MQTTSNPacket* return nullptr; } + if ( ( qos == 0 || qos == 3 ) && msgId > 0 ) + { + WRITELOG("%s Invalid MsgId.%s %s\n", ERRMSG_HEADER, client->getClientId(), ERRMSG_FOOTER); + return nullptr; + } + if( !topic && msgId && qos > 0 && qos < 3 ) { /* Reply PubAck with INVALID_TOPIC_ID to the client */