mlang/tests: don't assume output of ConvertStringFromUnicode is null terminated
James Hawkins
truiken at gmail.com
Sun Jul 6 12:29:29 CDT 2008
2008/7/6 Dan Kegel <dank at kegel.com>:
> The mlang test assumed that the output of ConvertStringFromUnicode
> was null terminated, but it seems not to be.
>
> Fixes the valgrind warning:
> Conditional jump or move depends on uninitialised value(s)
> at strlen (mc_replace_strmem.c:242)
> by lstrlenA (string.c:364)
> by ConvertINetMultiByteToUnicode (mlang.c:526)
> by ConvertINetString (mlang.c:633)
> by fnIMultiLanguage2_ConvertString (mlang.c:2197)
> by check_convertible (mlang.c:287)
> by test_EnumCodePages (mlang.c:407)
> Uninitialised value was created by a stack allocation
> at check_convertible (mlang.c:270)
>
> I believe James was trying to fix this with
> http://www.winehq.org/pipermail/wine-patches/2008-June/056454.html
> but missed (he thought the problem was on the destination
> len, but really it was on the source len?).
>
No, this is hiding a bug. The test code conforms with the API. The
problem is that ConvertINetMultiByteToUnicode uses the value of an
out-only parameter (NULL pDstStr, non-NULL pcDstSize). Check out the
code block in mlang.c:632.
--
James Hawkins
More information about the wine-devel
mailing list