From d63f83d279f04b84d90bfeeec5b9b498862f5e96 Mon Sep 17 00:00:00 2001 From: Zim Kalinowski Date: Wed, 25 Oct 2023 14:43:45 +0200 Subject: [PATCH] fix(example/http): Fixed potential memory leak/crash in when handling error condition --- .../protocols/https_request/main/time_sync.c | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/examples/protocols/https_request/main/time_sync.c b/examples/protocols/https_request/main/time_sync.c index 5e158c17ce..63416e7b3f 100644 --- a/examples/protocols/https_request/main/time_sync.c +++ b/examples/protocols/https_request/main/time_sync.c @@ -54,14 +54,15 @@ static esp_err_t obtain_time(void) esp_err_t fetch_and_store_time_in_nvs(void *args) { + nvs_handle_t my_handle = 0; + esp_err_t err; + initialize_sntp(); if (obtain_time() != ESP_OK) { - return ESP_FAIL; + err = ESP_FAIL; + goto exit; } - nvs_handle_t my_handle; - esp_err_t err; - time_t now; time(&now); @@ -82,10 +83,12 @@ esp_err_t fetch_and_store_time_in_nvs(void *args) goto exit; } - nvs_close(my_handle); +exit: + if (my_handle != 0) { + nvs_close(my_handle); + } esp_netif_deinit(); -exit: if (err != ESP_OK) { ESP_LOGE(TAG, "Error updating time in nvs"); } else { @@ -96,7 +99,7 @@ exit: esp_err_t update_time_from_nvs(void) { - nvs_handle_t my_handle; + nvs_handle_t my_handle = 0; esp_err_t err; err = nvs_open(STORAGE_NAMESPACE, NVS_READWRITE, &my_handle); @@ -122,6 +125,8 @@ esp_err_t update_time_from_nvs(void) } exit: - nvs_close(my_handle); + if (my_handle != 0) { + nvs_close(my_handle); + } return err; }