diff --git a/src/mqttcm_connect.c b/src/mqttcm_connect.c index a96f364..4fcddaa 100644 --- a/src/mqttcm_connect.c +++ b/src/mqttcm_connect.c @@ -1694,7 +1694,7 @@ int printList() int mqtt_subscribe(char *comp, char *topic) { int rc; - char temp_topic[30]; + char temp_topic[30]={'\0'}; if(topic != NULL && comp !=NULL) { int ret = isSubscribeNeeded(comp); @@ -1718,9 +1718,18 @@ int mqtt_subscribe(char *comp, char *topic) if(strcmp (comp, SUBSCRIBE_WEBCONFIG) == 0) { int subscribeId; - if( Get_Mqtt_ClientId() != NULL) + char *tempclient_id = NULL; + tempclient_id = Get_Mqtt_ClientId(); + if( tempclient_id != NULL && strlen(tempclient_id) !=0 ) { - snprintf(temp_topic, sizeof(temp_topic), "%s%s/#", MQTT_SUBSCRIBE_TOPIC, Get_Mqtt_ClientId()); + snprintf(temp_topic, sizeof(temp_topic), "%s%s/#", MQTT_SUBSCRIBE_TOPIC, tempclient_id); + MQTTCM_FREE(tempclient_id); + tempclient_id = NULL; + } + else + { + MqttCMError("Client id is NULL so not proceeding to subscribe\n"); + return 1; } MqttCMInfo("Subscribing to wildcard topic - %s\n", temp_topic); rc = mosquitto_subscribe(mosq, &subscribeId, temp_topic, 1);