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; }