Fix bug #52345: MQTT buffer length check seems wrong

(for empty payload in publish message)
This commit is contained in:
Dirk Ziegelmeier 2017-11-13 22:29:25 +01:00
parent a82054d24f
commit 1a1478551e

View File

@ -716,7 +716,7 @@ mqtt_message_received(mqtt_client_t *client, u8_t fixed_hdr_idx, u16_t length, u
topic = var_hdr_payload + 2;
after_topic = 2 + topic_len;
/* Check length, add one byte even for QoS 0 so that zero termination will fit */
if ((after_topic + (qos ? 2 : 1)) > length) {
if ((after_topic + (qos ? 2 : 1)) > (MQTT_VAR_HEADER_BUFFER_LEN - fixed_hdr_idx)) {
LWIP_DEBUGF(MQTT_DEBUG_WARN, ("mqtt_message_received: Receive buffer can not fit topic + pkt_id\n"));
goto out_disconnect;
}