@@ -934,18 +934,27 @@ esp_err_t esp_mqtt_client_set_uri(esp_mqtt_client_handle_t client, const char *u
934
934
client -> config -> path = NULL ;
935
935
936
936
if (puri .field_data [UF_PATH ].len || puri .field_data [UF_QUERY ].len ) {
937
+ int asprintf_ret_value ;
937
938
if (puri .field_data [UF_QUERY ].len == 0 ) {
938
- asprintf (& client -> config -> path , "%.*s" , puri .field_data [UF_PATH ].len , uri + puri .field_data [UF_PATH ].off );
939
+ asprintf_ret_value = asprintf (& client -> config -> path ,
940
+ "%.*s" ,
941
+ puri .field_data [UF_PATH ].len , uri + puri .field_data [UF_PATH ].off );
939
942
} else if (puri .field_data [UF_PATH ].len == 0 ) {
940
- asprintf (& client -> config -> path , "/?%.*s" , puri .field_data [UF_QUERY ].len , uri + puri .field_data [UF_QUERY ].off );
943
+ asprintf_ret_value = asprintf (& client -> config -> path ,
944
+ "/?%.*s" ,
945
+ puri .field_data [UF_QUERY ].len , uri + puri .field_data [UF_QUERY ].off );
941
946
} else {
942
- asprintf (& client -> config -> path , "%.*s?%.*s" , puri .field_data [UF_PATH ].len , uri + puri .field_data [UF_PATH ].off ,
943
- puri .field_data [UF_QUERY ].len , uri + puri .field_data [UF_QUERY ].off );
947
+ asprintf_ret_value = asprintf (& client -> config -> path ,
948
+ "%.*s?%.*s" ,
949
+ puri .field_data [UF_PATH ].len , uri + puri .field_data [UF_PATH ].off ,
950
+ puri .field_data [UF_QUERY ].len , uri + puri .field_data [UF_QUERY ].off );
944
951
}
945
- ESP_MEM_CHECK (TAG , client -> config -> path , {
952
+
953
+ if (asprintf_ret_value == -1 ) {
954
+ ESP_LOGE (TAG ,"%s(%d): %s" , __FUNCTION__ , __LINE__ , "Memory exhausted" );
946
955
MQTT_API_UNLOCK (client );
947
956
return ESP_ERR_NO_MEM ;
948
- });
957
+ }
949
958
}
950
959
951
960
if (puri .field_data [UF_PORT ].len ) {
0 commit comments