Fixed: Memleak

This commit is contained in:
TheJoKlLa 2023-12-29 21:11:39 +01:00
parent 06a800c6f6
commit 8c0e107e18

View File

@ -39,6 +39,9 @@ static void MQTTClient_EventHandlerMQTT(void *handler_args, esp_event_base_t bas
esp_mqtt_event_handle_t event = event_data; esp_mqtt_event_handle_t event = event_data;
esp_mqtt_client_handle_t client = event->client; esp_mqtt_client_handle_t client = event->client;
char* topic = NULL;
char* payload = NULL;
switch ((esp_mqtt_event_id_t)event_id) switch ((esp_mqtt_event_id_t)event_id)
{ {
case MQTT_EVENT_CONNECTED: case MQTT_EVENT_CONNECTED:
@ -56,8 +59,8 @@ static void MQTTClient_EventHandlerMQTT(void *handler_args, esp_event_base_t bas
ESP_LOGD(TAG_MQTTClient, "TOPIC=%.*s\r\n", event->topic_len, event->topic); ESP_LOGD(TAG_MQTTClient, "TOPIC=%.*s\r\n", event->topic_len, event->topic);
ESP_LOGD(TAG_MQTTClient, "DATA=%.*s\r\n", event->data_len, event->data); ESP_LOGD(TAG_MQTTClient, "DATA=%.*s\r\n", event->data_len, event->data);
char* topic = malloc(sizeof(char) * event->topic_len + 1); topic = malloc(sizeof(char) * event->topic_len + 1);
char* payload = malloc(sizeof(char) * event->data_len + 1); payload = malloc(sizeof(char) * event->data_len + 1);
topic[event->topic_len] = 0; topic[event->topic_len] = 0;
topic[event->data_len] = 0; topic[event->data_len] = 0;
@ -145,6 +148,15 @@ static void MQTTClient_EventHandlerMQTT(void *handler_args, esp_event_base_t bas
default: default:
ESP_LOGD(TAG_MQTTClient, "Unhandled Event"); ESP_LOGD(TAG_MQTTClient, "Unhandled Event");
} }
if(topic != NULL)
{
free(topic);
}
if(payload != NULL)
{
free(payload);
}
} }
void MQTTClient_Init(MQTTClient_Config* config, MQTTClient_Data* data) void MQTTClient_Init(MQTTClient_Config* config, MQTTClient_Data* data)
@ -155,7 +167,7 @@ void MQTTClient_Init(MQTTClient_Config* config, MQTTClient_Data* data)
data->Effect_Queue = config->Effect_Queue; data->Effect_Queue = config->Effect_Queue;
data->ID = config->ID; data->ID = config->ID;
sprintf(data->Topic, "fablight/%s/#", config->ID); sprintf(data->Topic, "fablight/%s/#", config->ID);
//data->Topic = "fablight/#";
ESP_LOGI(TAG_MQTTClient, "Init"); ESP_LOGI(TAG_MQTTClient, "Init");
esp_netif_create_default_wifi_sta(); esp_netif_create_default_wifi_sta();