From 562a5dd215238e5b57972d35b59ae24a8af8e9ca Mon Sep 17 00:00:00 2001 From: aditi_lonkar Date: Wed, 20 Jan 2021 17:03:05 +0530 Subject: [PATCH] wpa_supplicant: Fix some memory leak issues by coverity static analyzer. --- components/wpa_supplicant/src/common/sae.c | 5 ++++- components/wpa_supplicant/src/esp_supplicant/esp_wpa2.c | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/components/wpa_supplicant/src/common/sae.c b/components/wpa_supplicant/src/common/sae.c index e63aa75954..30c48aa722 100644 --- a/components/wpa_supplicant/src/common/sae.c +++ b/components/wpa_supplicant/src/common/sae.c @@ -667,7 +667,7 @@ static int sae_derive_commit_element_ffc(struct sae_data *sae, static int sae_derive_commit(struct sae_data *sae) { - struct crypto_bignum *mask; + struct crypto_bignum *mask = NULL; int ret = -1; unsigned int counter = 0; @@ -683,6 +683,9 @@ static int sae_derive_commit(struct sae_data *sae) return ESP_FAIL; } + if (mask) { + crypto_bignum_deinit(mask, 1); + } mask = sae_get_rand_and_mask(sae); if (mask == NULL) { wpa_printf(MSG_DEBUG, "SAE: Could not get rand/mask"); diff --git a/components/wpa_supplicant/src/esp_supplicant/esp_wpa2.c b/components/wpa_supplicant/src/esp_supplicant/esp_wpa2.c index 790523b2b2..beaa5b6462 100644 --- a/components/wpa_supplicant/src/esp_supplicant/esp_wpa2.c +++ b/components/wpa_supplicant/src/esp_supplicant/esp_wpa2.c @@ -749,7 +749,8 @@ static int eap_peer_sm_init(void) s_wpa2_data_lock = xSemaphoreCreateRecursiveMutex(); if (!s_wpa2_data_lock) { - wpa_printf(MSG_ERROR, "wpa2 eap_peer_sm_init: failed to alloc data lock"); // NOLINT(clang-analyzer-unix.Malloc) + free(sm); + wpa_printf(MSG_ERROR, "wpa2 eap_peer_sm_init: failed to alloc data lock"); return ESP_ERR_NO_MEM; }