Issue #27932: Prevent memory leak in win32_ver().

This commit is contained in:
Steve Dower 2016-09-17 16:43:01 -07:00
parent ca56dd4767
commit db01b3e069
2 changed files with 6 additions and 2 deletions

View File

@ -567,7 +567,7 @@ def _get_real_winver(maj, min, build):
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 @@ def _get_real_winver(maj, min, build):
("dwFileDateMS", DWORD),
("dwFileDateLS", DWORD),
]
class PVS_FIXEDFILEINFO(_Pointer):
_type_ = VS_FIXEDFILEINFO
kernel32 = WinDLL('kernel32')
version = WinDLL('version')
@ -611,7 +613,7 @@ def _get_real_winver(maj, min, build):
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

View File

@ -214,6 +214,8 @@ Tools/Demos
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.