MQTT parse_publish_vhdr: added missing check of topic length

This commit is contained in:
Simon Duquennoy 2018-10-15 14:12:08 +02:00
parent 3b5369cf2a
commit bcebd3afcf

View File

@ -881,7 +881,11 @@ parse_publish_vhdr(struct mqtt_connection *conn,
conn->in_packet.topic_len |= input_data_ptr[(*pos)++]; conn->in_packet.topic_len |= input_data_ptr[(*pos)++];
conn->in_packet.byte_counter++; conn->in_packet.byte_counter++;
conn->in_packet.topic_len_received = 1; conn->in_packet.topic_len_received = 1;
/* Abort if topic is longer than our topic buffer */
if(conn->in_packet.topic_len > MQTT_MAX_TOPIC_LENGTH) {
DBG("MQTT - topic too long %u/%u\n", conn->in_packet.topic_len, MQTT_MAX_TOPIC_LENGTH);
return;
}
DBG("MQTT - Read PUBLISH topic len %i\n", conn->in_packet.topic_len); DBG("MQTT - Read PUBLISH topic len %i\n", conn->in_packet.topic_len);
/* WARNING: Check here if TOPIC fits in payload area, otherwise error */ /* WARNING: Check here if TOPIC fits in payload area, otherwise error */
} }