From 3be3d5fff2d45638db5ffcf5b998e8985337c12a Mon Sep 17 00:00:00 2001 From: Mahavir Jain Date: Wed, 7 Jul 2021 20:37:17 +0530 Subject: [PATCH 1/2] mbedtls: upgrade to release v2.16.11 For detailed release notes please refer to: https://github.com/ARMmbed/mbedtls/releases/tag/v2.16.11 --- components/mbedtls/mbedtls | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/mbedtls/mbedtls b/components/mbedtls/mbedtls index 99c88bb7bd..6465247f67 160000 --- a/components/mbedtls/mbedtls +++ b/components/mbedtls/mbedtls @@ -1 +1 @@ -Subproject commit 99c88bb7bd7c2d91c6873abd6e6d5ee04f4f164c +Subproject commit 6465247f67167518b8813ae2faaf422704e4b1a3 From ea3c9018745878bfb9c6532ab6613cedd34bb4fc Mon Sep 17 00:00:00 2001 From: Mahavir Jain Date: Thu, 8 Jul 2021 12:01:44 +0530 Subject: [PATCH 2/2] mbedtls: fix crt_bundle test to ensure proper server start event This fixes occasional test failure that was observed due to client task getting started before server was up. --- components/mbedtls/test/test_esp_crt_bundle.c | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/components/mbedtls/test/test_esp_crt_bundle.c b/components/mbedtls/test/test_esp_crt_bundle.c index 7cf45e5417..48701a9436 100644 --- a/components/mbedtls/test/test_esp_crt_bundle.c +++ b/components/mbedtls/test/test_esp_crt_bundle.c @@ -168,6 +168,9 @@ void server_task(void *pvParameters) goto exit; } + /* Signal that server is up and hence client task can start now */ + xSemaphoreGive(*sema); + bool connected = false; while (!exit_flag) { @@ -272,8 +275,6 @@ int client_task(const uint8_t *bundle, esp_crt_validate_res_t *res) esp_crt_bundle_set(bundle); } - - ESP_LOGI(TAG, "Connecting to %s:%s...", SERVER_ADDRESS, SERVER_PORT); if ((ret = mbedtls_net_connect(&client.client_fd, SERVER_ADDRESS, SERVER_PORT, MBEDTLS_NET_PROTO_TCP)) != 0) { ESP_LOGE(TAG, "mbedtls_net_connect returned -%x", -ret); @@ -319,13 +320,16 @@ TEST_CASE("custom certificate bundle", "[mbedtls]") test_case_uses_tcpip(); - xSemaphoreHandle exit_sema = xSemaphoreCreateBinary(); + xSemaphoreHandle signal_sem = xSemaphoreCreateBinary(); + TEST_ASSERT_NOT_NULL(signal_sem); exit_flag = false; - xTaskCreate(server_task, "server task", 8192, &exit_sema, 10, NULL); + xTaskCreate(server_task, "server task", 8192, &signal_sem, 10, NULL); // Wait for the server to start up - vTaskDelay(100 / portTICK_PERIOD_MS); + if (!xSemaphoreTake(signal_sem, 10000 / portTICK_PERIOD_MS)) { + TEST_FAIL_MESSAGE("signal_sem not released, server start failed"); + } /* Test with default crt bundle that doesnt contain the ca crt */ client_task(NULL, &validate_res); @@ -337,11 +341,11 @@ TEST_CASE("custom certificate bundle", "[mbedtls]") exit_flag = true; - if (!xSemaphoreTake(exit_sema, 10000 / portTICK_PERIOD_MS)) { - TEST_FAIL_MESSAGE("exit_sem not released by server task"); + if (!xSemaphoreTake(signal_sem, 10000 / portTICK_PERIOD_MS)) { + TEST_FAIL_MESSAGE("signal_sem not released, server exit failed"); } - vSemaphoreDelete(exit_sema); + vSemaphoreDelete(signal_sem); } #endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3)