Issue #21393: random.c: on Windows, close the hCryptProv handle at exit
diff --git a/Python/random.c b/Python/random.c
index 2941ba1..b04d205 100644
--- a/Python/random.c
+++ b/Python/random.c
@@ -15,8 +15,6 @@
#endif
#ifdef MS_WINDOWS
-/* This handle is never explicitly released. Instead, the operating
- system will release it when the process terminates. */
static HCRYPTPROV hCryptProv = 0;
static int
@@ -298,7 +296,12 @@
void
_PyRandom_Fini(void)
{
-#ifndef MS_WINDOWS
+#ifdef MS_WINDOWS
+ if (hCryptProv) {
+ CloseHandle(hCryptProv);
+ hCryptProv = 0;
+ }
+#else
dev_urandom_close();
#endif
}