Skip to content

Commit

Permalink
fix(esp_https_server): fix memory leak during configuring http server
Browse files Browse the repository at this point in the history
This MR This restructured code to prevent memory leak during the starting HTTP server.

Closes #13526
  • Loading branch information
nileshkale123 committed May 3, 2024
1 parent e461585 commit 21d5120
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions components/esp_https_server/src/https_server.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2018-2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2018-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
Expand Down Expand Up @@ -366,7 +366,6 @@ static esp_err_t create_secure_context(const struct httpd_ssl_config *config, ht
free((void *) cfg->cacert_buf);
}
free(cfg);
free(*ssl_ctx);
return ret;
}

Expand All @@ -379,14 +378,17 @@ esp_err_t httpd_ssl_start(httpd_handle_t *pHandle, struct httpd_ssl_config *conf
ESP_LOGI(TAG, "Starting server");

esp_err_t ret = ESP_OK;
httpd_ssl_ctx_t *ssl_ctx = NULL;

if (HTTPD_SSL_TRANSPORT_SECURE == config->transport_mode) {
httpd_ssl_ctx_t *ssl_ctx = calloc(1, sizeof(httpd_ssl_ctx_t));
ssl_ctx = calloc(1, sizeof(httpd_ssl_ctx_t));
if (!ssl_ctx) {
return ESP_ERR_NO_MEM;
}

ret = create_secure_context(config, &ssl_ctx);
if (ret != ESP_OK) {
free(ssl_ctx);
return ret;
}

Expand All @@ -411,7 +413,11 @@ esp_err_t httpd_ssl_start(httpd_handle_t *pHandle, struct httpd_ssl_config *conf
httpd_handle_t handle = NULL;

ret = httpd_start(&handle, &config->httpd);
if (ret != ESP_OK) return ret;
if (ret != ESP_OK) {
free(ssl_ctx);
ssl_ctx = NULL;
return ret;
}

*pHandle = handle;

Expand Down

0 comments on commit 21d5120

Please sign in to comment.