Issue #27932: Prevent memory leak in win32_ver().
diff --git a/Lib/platform.py b/Lib/platform.py
index 6e264f1..37dfbee 100755
--- a/Lib/platform.py
+++ b/Lib/platform.py
@@ -567,7 +567,7 @@
return maj, min, build
from ctypes import (c_buffer, POINTER, byref, create_unicode_buffer,
- Structure, WinDLL)
+ Structure, WinDLL, _Pointer)
from ctypes.wintypes import DWORD, HANDLE
class VS_FIXEDFILEINFO(Structure):
@@ -586,6 +586,8 @@
("dwFileDateMS", DWORD),
("dwFileDateLS", DWORD),
]
+ class PVS_FIXEDFILEINFO(_Pointer):
+ _type_ = VS_FIXEDFILEINFO
kernel32 = WinDLL('kernel32')
version = WinDLL('version')
@@ -611,7 +613,7 @@
not ver_block):
return maj, min, build
- pvi = POINTER(VS_FIXEDFILEINFO)()
+ pvi = PVS_FIXEDFILEINFO()
if not version.VerQueryValueW(ver_block, "", byref(pvi), byref(DWORD())):
return maj, min, build
diff --git a/Misc/NEWS b/Misc/NEWS
index 3638a16..9ef88bf 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -214,6 +214,8 @@
Windows
-------
+- Issue #27932: Prevent memory leak in win32_ver().
+
- Issue #27888: Prevent Windows installer from displaying console windows and
failing when pip cannot be installed/uninstalled.