From: Mark Jansen Subject: [1/2] version: Fix wrong length reported when selecting a block. (resend 2) Message-Id: Date: Wed, 18 Feb 2015 22:41:41 +0100 This fixes the possibility of wrong info returned when Selecting a Block item with VerQueryValueA. --- dlls/version/version.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) From f6b3f5126d53c750ab96338ddbfd4cd1c02b0927 Mon Sep 17 00:00:00 2001 From: Mark Date: Mon, 9 Feb 2015 14:13:12 -0800 Subject: Fix wrong length returned when selecting a block --- dlls/version/version.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dlls/version/version.c b/dlls/version/version.c index 680fa31..6784c6a 100644 --- a/dlls/version/version.c +++ b/dlls/version/version.c @@ -952,6 +952,9 @@ BOOL WINAPI VerQueryValueA( LPCVOID pBlock, LPCSTR lpSubBlock, BOOL ret, isText; INT len; LPWSTR lpSubBlockW; + UINT dum = 0; + if (!puLen) + puLen = &dum; len = MultiByteToWideChar(CP_ACP, 0, lpSubBlock, -1, NULL, 0); lpSubBlockW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); @@ -965,7 +968,7 @@ BOOL WINAPI VerQueryValueA( LPCVOID pBlock, LPCSTR lpSubBlock, HeapFree(GetProcessHeap(), 0, lpSubBlockW); - if (ret && isText) + if (ret && isText && *puLen) { /* Set lpBuffer so it points to the 'empty' area where we store * the converted strings -- 1.9.1