From 9f362ea3154501b93b276b82c7a3aa44d7111cfb Mon Sep 17 00:00:00 2001 From: Andrey Volk Date: Fri, 7 Jun 2024 16:07:15 +0300 Subject: [PATCH] [Core] Better handle error cases in switch_rand(). --- src/switch_utils.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/switch_utils.c b/src/switch_utils.c index 25d0bf76ee..64577d3997 100644 --- a/src/switch_utils.c +++ b/src/switch_utils.c @@ -4828,6 +4828,8 @@ SWITCH_DECLARE(int) switch_rand(void) if (!BCRYPT_SUCCESS(status)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "BCryptGenRandom failed with status %d\n", status); + BCryptCloseAlgorithmProvider(hAlgorithm, 0); + return 1; } @@ -4856,6 +4858,8 @@ SWITCH_DECLARE(int) switch_rand(void) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "read failed: %s\n", error_msg); + close(random_fd); + return 1; }