From a79f77c0a6408c7a7a975ea118fdad4420d0c1d8 Mon Sep 17 00:00:00 2001 From: Erik Fleckstein <9214823+rtrbt@users.noreply.github.com> Date: Wed, 1 Apr 2026 14:36:42 +0200 Subject: [PATCH] fix(websocket): Fix leaking user_info if strdup for user or pass fails --- components/esp_websocket_client/esp_websocket_client.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/esp_websocket_client/esp_websocket_client.c b/components/esp_websocket_client/esp_websocket_client.c index d5b4f3825a..acd719529b 100644 --- a/components/esp_websocket_client/esp_websocket_client.c +++ b/components/esp_websocket_client/esp_websocket_client.c @@ -992,11 +992,11 @@ esp_err_t esp_websocket_client_set_uri(esp_websocket_client_handle_t client, con pass ++; free(client->config->password); client->config->password = strdup(pass); - ESP_WS_CLIENT_MEM_CHECK(TAG, client->config->password, return ESP_ERR_NO_MEM); + ESP_WS_CLIENT_MEM_CHECK(TAG, client->config->password, free(user_info); return ESP_ERR_NO_MEM); } free(client->config->username); client->config->username = strdup(user_info); - ESP_WS_CLIENT_MEM_CHECK(TAG, client->config->username, return ESP_ERR_NO_MEM); + ESP_WS_CLIENT_MEM_CHECK(TAG, client->config->username, free(user_info); return ESP_ERR_NO_MEM); free(user_info); } else { return ESP_ERR_NO_MEM;