version: Fix wrong length reported when selecting a block. (resend)

Stefan Dösinger stefandoesinger at gmail.com
Fri Feb 13 04:27:39 CST 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 2015-02-12 um 20:15 schrieb Mark Jansen:
>          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)
I am afraid I have no idea what this patch is doing. I am not even sure
I understand the original function properly :-( . VerQueryValueA seems
like an A to W wrapper for VersionInfo32_QueryValue, but with the quirky
behavior that it appends the ascii string after the unicode string.

Can you elaborate a bit on what exactly goes wrong? What are the input
values, and what does VersionInfo32_QueryValue return?

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBAgAGBQJU3dGbAAoJEN0/YqbEcdMwpwEP+wabxLJtbw7O7enIEu21l8ls
m6vxZr1PXP5RnTmOs4nk/QmWT4Oa68qY2EBdArZ79WwyVULLI7BjNJ1aLS67dw/Z
l6Dk9fh8orxoD4HznH0o7PxYrWNrQ1nJ2jf39k+TO4DbSHMZB/eGXnGUZxVFwKVf
H7yNxmoSISC0aWgQP0/QZF+AhtsJ5TLIWtNyJULpmTnZZGu9z94Ukftd9gDL+tZU
ezFsqxdDhpy0nirb4ky/Yq77jXQtsCmz/pCNi7ntYuQqY5fEmtJQMAtpfOQhdG5h
XP1Py7qFTu/RgqnBsO1Z3INRyKk7NS4BsPvULcLsk4WbDvoTGEqa1WwHwqHY4Dng
IDHagE938Xkc8CPiHGzqJG6WDdPPkFiRzqM+2HH87ihJ2uAaVZcK/V46lGiJCx8q
jDY+DlcDyZRmw28+fjwzOjPQHZx/jH2X3wLIpkliM5Ja03Ocb27Aaud9DEQ6H0vw
0VbD2Db6oOrPBv3oyDmZhI+NTPgvsUoaH6sNE+3cIEwBWpCKkOJMzoDZ6EiqWVqj
jvJklcVcOn7nfUBH0YCfnG5szQokMnfcnZaOZxzkjWnPvwJbfC36eLQyESkbtbKf
Y2Z+mvbWslkhdeR0jKAmQNwfDuFcfvZflinem3U9xJAqBKEmicLeqJ0dtwUIJyC7
TnJMMCP14EDaX0DZGHw3
=94Ql
-----END PGP SIGNATURE-----



More information about the wine-devel mailing list