Просмотр исходного кода

Merge branch 'bugfix/fix_mbedlts_ds_memory_leak' into 'master'

esp-tls: Fix memory leak in mbedtls ds peripheral when MBEDTLS_THREADING_C enabled

Closes ESPCS-872

See merge request espressif/esp-idf!20563
Mahavir Jain 3 лет назад
Родитель
Сommit
f4773d64e4
1 измененных файлов с 6 добавлено и 3 удалено
  1. 6 3
      components/esp-tls/esp_tls_mbedtls.c

+ 6 - 3
components/esp-tls/esp_tls_mbedtls.c

@@ -971,14 +971,17 @@ static esp_err_t esp_mbedtls_init_pk_ctx_for_ds(const void *pki)
                                         esp_ds_get_keylen )) != 0) {
         ESP_LOGE(TAG, "Error in mbedtls_pk_setup_rsa_alt, returned -0x%04X", -ret);
         mbedtls_print_error_msg(ret);
-        return ESP_FAIL;
+        ret = ESP_FAIL;
+        goto exit;
     }
     ret = esp_ds_init_data_ctx(((const esp_tls_pki_t*)pki)->esp_ds_data);
     if (ret != ESP_OK) {
         ESP_LOGE(TAG, "Failed to initialize DS parameters from nvs");
-        return ESP_FAIL;
+        goto exit;
     }
     ESP_LOGD(TAG, "DS peripheral params initialized.");
-    return ESP_OK;
+exit:
+    mbedtls_rsa_free(&rsakey);
+    return ret;
 }
 #endif /* CONFIG_ESP_TLS_USE_DS_PERIPHERAL */