Skip to content

Commit

Permalink
Merge branch 'bugfix/free_memory_if_failed_to_strart_http_server' int…
Browse files Browse the repository at this point in the history
…o 'master'

fix(esp_https_server): fix memory leak during configuring http server

Closes IDFGH-12519

See merge request espressif/esp-idf!30233
  • Loading branch information
nileshkale123 committed May 6, 2024
2 parents 8c76bd4 + 21d5120 commit ade6a5e
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 ade6a5e

Please sign in to comment.