esp_wifi: Fixes memory leak in wpa3 connection.
@@ -48,6 +48,7 @@ int sae_set_group(struct sae_data *sae, int group)
tmp->prime_len = tmp->dh->prime_len;
if (tmp->prime_len > SAE_MAX_PRIME_LEN) {
sae_clear_data(sae);
+ os_free(tmp);
return ESP_FAIL;
}
@@ -55,6 +56,7 @@ int sae_set_group(struct sae_data *sae, int group)
tmp->prime_len);
if (tmp->prime_buf == NULL) {
sae_clear_data(sae);
+ os_free(tmp);
return ESP_FAIL;
}
tmp->prime = tmp->prime_buf;
@@ -63,6 +65,7 @@ int sae_set_group(struct sae_data *sae, int group)
tmp->dh->order_len);
if (tmp->order_buf == NULL) {
sae_clear_data(sae);
+ os_free(tmp);
return ESP_FAIL;
}
tmp->order = tmp->order_buf;
@@ -73,6 +76,7 @@ int sae_set_group(struct sae_data *sae, int group)
/* Unsupported group */
wpa_printf(MSG_DEBUG,
"SAE: Group %d not supported by the crypto library", group);
+ os_free(tmp);
return ESP_FAIL;
}
