[PATCH] pass correct buffersize to LCMapStringW
dmitry at codeweavers.com
Tue Sep 16 05:02:42 CDT 2008
"Rob Shearman" <robertshearman at gmail.com> wrote:
>>>> > - ret = LCMapStringW(LOCALE_USER_DEFAULT, 0, upper_case, 0, buf, sizeof(buf));
>>>> > + ret = LCMapStringW(LOCALE_USER_DEFAULT, 0, upper_case, 0, buf, sizeof(buf)/sizeof(WCHAR));
>>>> > ok(!ret, "LCMapStringW should fail with srclen = 0\n");
>>>> The size of the target buffer doesn't matter at all in this case, since
>>>> the API is supposed to fail due to source length being 0.
>>> Even if the size doesn't matter, this line should get fixed, as the Wine
>>> tests are a kind of of Win32 API reference by example. IMHO you
>>> shouldn't include such misleading parameters as the size in the wrong
>>> unit into API usage examples.
>> This particular test doesn't depend on the size of the target buffer,
>> be it 0, -1, or whatever.
> I don't understand your objection to fixing this. If by chance
> Microsoft happen to change the API to not fail when the source length
> is 0 then this will suddenly become a possible buffer overrun.
If the source length is 0, then there is nothing to write to the destination,
and therefore there shouldn't be a buffer overrun problem.
> Why not
> just pass in a correct length as the destination length or just pass
> in 0?
Because that wouldn't change anything IMO.
More information about the wine-devel