correct length and malloc storate for lwt binary message

This commit is contained in:
Tuan PM
2018-03-01 22:30:25 +07:00
parent 7e3e296581
commit 2c0db6a669

View File

@ -125,14 +125,13 @@ static esp_err_t esp_mqtt_set_config(esp_mqtt_client_handle_t client, const esp_
client->connect_info.will_topic = strdup(config->lwt_topic);
}
if (config->lwt_msg[0]) {
if (config->lwt_msg_len) {
client->connect_info.will_message = malloc(config->lwt_msg_len);
mem_assert(client->connect_info.will_message);
memcpy(client->connect_info.will_message, config->lwt_msg, config->lwt_msg_len);
} else if (config->lwt_msg[0]) {
client->connect_info.will_message = strdup(config->lwt_msg);
if (config->lwt_msg_len > 0) {
client->connect_info.will_length = config->lwt_msg_len;
}
else {
client->connect_info.will_length = strlen(config->lwt_msg);
}
client->connect_info.will_length = strlen(config->lwt_msg);
}
client->connect_info.will_qos = config->lwt_qos;