瀏覽代碼

fix(nvs_sec_provider): Fix memory leakage reported by coverity

Laukik Hase 2 年之前
父節點
當前提交
bfaeb075a6
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      components/nvs_sec_provider/nvs_sec_provider.c

+ 6 - 0
components/nvs_sec_provider/nvs_sec_provider.c

@@ -63,12 +63,15 @@ esp_err_t nvs_sec_provider_register_flash_enc(const nvs_sec_config_flash_enc_t *
 
 
     sec_scheme->scheme_data = calloc(1, sizeof(nvs_sec_config_flash_enc_t));
     sec_scheme->scheme_data = calloc(1, sizeof(nvs_sec_config_flash_enc_t));
     if (sec_scheme->scheme_data == NULL) {
     if (sec_scheme->scheme_data == NULL) {
+        free(sec_scheme);
         return ESP_ERR_NO_MEM;
         return ESP_ERR_NO_MEM;
     }
     }
     memcpy(sec_scheme->scheme_data, (void *)sec_scheme_cfg, sizeof(nvs_sec_config_flash_enc_t));
     memcpy(sec_scheme->scheme_data, (void *)sec_scheme_cfg, sizeof(nvs_sec_config_flash_enc_t));
 
 
     esp_err_t err = nvs_flash_register_security_scheme(sec_scheme);
     esp_err_t err = nvs_flash_register_security_scheme(sec_scheme);
     if (err != ESP_OK) {
     if (err != ESP_OK) {
+        free(sec_scheme->scheme_data);
+        free(sec_scheme);
         return err;
         return err;
     }
     }
 
 
@@ -230,6 +233,7 @@ esp_err_t nvs_sec_provider_register_hmac(const nvs_sec_config_hmac_t *sec_scheme
 
 
     sec_scheme->scheme_data = calloc(1, sizeof(nvs_sec_config_hmac_t));
     sec_scheme->scheme_data = calloc(1, sizeof(nvs_sec_config_hmac_t));
     if (sec_scheme->scheme_data == NULL) {
     if (sec_scheme->scheme_data == NULL) {
+        free(sec_scheme);
         return ESP_ERR_NO_MEM;
         return ESP_ERR_NO_MEM;
     }
     }
 
 
@@ -237,6 +241,8 @@ esp_err_t nvs_sec_provider_register_hmac(const nvs_sec_config_hmac_t *sec_scheme
 
 
     esp_err_t err = nvs_flash_register_security_scheme(sec_scheme);
     esp_err_t err = nvs_flash_register_security_scheme(sec_scheme);
     if (err != ESP_OK) {
     if (err != ESP_OK) {
+        free(sec_scheme->scheme_data);
+        free(sec_scheme);
         return err;
         return err;
     }
     }