From db01b3e069085b3d24f65eec051f13ba1e392fb7 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Sat, 17 Sep 2016 16:43:01 -0700 Subject: [PATCH] Issue #27932: Prevent memory leak in win32_ver(). --- Lib/platform.py | 6 ++++-- Misc/NEWS | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Lib/platform.py b/Lib/platform.py index 6e264f1ade2..37dfbeea925 100755 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -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 diff --git a/Misc/NEWS b/Misc/NEWS index 3638a1672a2..9ef88bf07b5 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -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.