diff --git a/Adafruit_MQTT.cpp b/Adafruit_MQTT.cpp index 6855f84..c82a876 100644 --- a/Adafruit_MQTT.cpp +++ b/Adafruit_MQTT.cpp @@ -463,6 +463,9 @@ Adafruit_MQTT_Subscribe *Adafruit_MQTT::readSubscription(int16_t timeout) { DEBUG_PRINT("Packet len: "); DEBUG_PRINTLN(len); DEBUG_PRINTBUFFER(buffer, len); + if (len<3) return NULL; + if ((buffer[0] & 0xF0) != (MQTT_CTRL_PUBLISH) << 4) return NULL; + // Parse out length of packet. topiclen = buffer[3]; DEBUG_PRINT(F("Looking for subscription len ")); DEBUG_PRINTLN(topiclen);