[2/3] windowscodecs: Test for png codec seeking too far

Viktor Semykin thesame.ml at gmail.com
Thu Mar 30 11:55:14 CDT 2017


Okay, I split the patch and put it in the tail of the series. It's up to 
you to accept it or not.


On 30/03/17 03:57, Vincent Povirk wrote:
> I think you should either split the patch, or leave it using HGLOBAL.
>
> On Wed, Mar 29, 2017 at 11:12 PM, Viktor Semykin <thesame.ml at gmail.com> wrote:
>> No, there's no such a reason. This test would pass with HGLOBAL as well.
>> What should I do in this situation? Would it better to leave it as it used
>> to be?
>>
>>
>>
>> On 29/03/17 20:54, Vincent Povirk wrote:
>>> Is there a reason to switch to SHCreateMemStream to do this test in
>>> particular? If not, it would probably make more sense as a separate
>>> cleanup project.
>>>
>>> On Mon, Mar 27, 2017 at 3:09 PM, Viktor Semykin <thesame.ml at gmail.com>
>>> wrote:
>>>> Signed-off-by: Viktor Semykin <thesame.ml at gmail.com>
>>>> ---
>>>>    dlls/windowscodecs/tests/Makefile.in |  2 +-
>>>>    dlls/windowscodecs/tests/pngformat.c | 19 ++++++++++---------
>>>>    2 files changed, 11 insertions(+), 10 deletions(-)
>>>>
>>>> diff --git a/dlls/windowscodecs/tests/Makefile.in
>>>> b/dlls/windowscodecs/tests/Makefile.in
>>>> index e11d184..e006e3d 100644
>>>> --- a/dlls/windowscodecs/tests/Makefile.in
>>>> +++ b/dlls/windowscodecs/tests/Makefile.in
>>>> @@ -1,5 +1,5 @@
>>>>    TESTDLL   = windowscodecs.dll
>>>> -IMPORTS   = windowscodecs oleaut32 ole32 user32 gdi32
>>>> +IMPORTS   = windowscodecs oleaut32 ole32 user32 gdi32 shlwapi
>>>>
>>>>    C_SRCS = \
>>>>           bitmap.c \
>>>> diff --git a/dlls/windowscodecs/tests/pngformat.c
>>>> b/dlls/windowscodecs/tests/pngformat.c
>>>> index 34cb533..20b6e93 100644
>>>> --- a/dlls/windowscodecs/tests/pngformat.c
>>>> +++ b/dlls/windowscodecs/tests/pngformat.c
>>>> @@ -25,6 +25,7 @@
>>>>    #include "windef.h"
>>>>    #include "wincodec.h"
>>>>    #include "wine/test.h"
>>>> +#include "shlwapi.h"
>>>>
>>>>    /* 1x1 pixel PNG image */
>>>>    static const char png_no_color_profile[] = {
>>>> @@ -277,21 +278,16 @@ static IWICImagingFactory *factory;
>>>>
>>>>    static IWICBitmapDecoder *create_decoder(const void *image_data, UINT
>>>> image_size)
>>>>    {
>>>> -    HGLOBAL hmem;
>>>> -    BYTE *data;
>>>>        HRESULT hr;
>>>>        IWICBitmapDecoder *decoder = NULL;
>>>>        IStream *stream;
>>>>        GUID format;
>>>>        LONG refcount;
>>>> +    ULARGE_INTEGER pos;
>>>> +    LARGE_INTEGER zero;
>>>>
>>>> -    hmem = GlobalAlloc(0, image_size);
>>>> -    data = GlobalLock(hmem);
>>>> -    memcpy(data, image_data, image_size);
>>>> -    GlobalUnlock(hmem);
>>>> -
>>>> -    hr = CreateStreamOnHGlobal(hmem, TRUE, &stream);
>>>> -    ok(hr == S_OK, "CreateStreamOnHGlobal error %#x\n", hr);
>>>> +    stream = SHCreateMemStream (image_data, image_size);
>>>> +    ok(stream != NULL, "SHCreateMemStream error\n");
>>>>
>>>>        hr = IWICImagingFactory_CreateDecoderFromStream(factory, stream,
>>>> NULL, 0, &decoder);
>>>>        ok(hr == S_OK, "CreateDecoderFromStream error %#x\n", hr);
>>>> @@ -302,6 +298,11 @@ static IWICBitmapDecoder *create_decoder(const void
>>>> *image_data, UINT image_size
>>>>        ok(IsEqualGUID(&format, &GUID_ContainerFormatPng),
>>>>           "wrong container format %s\n", wine_dbgstr_guid(&format));
>>>>
>>>> +    zero.QuadPart = 0;
>>>> +    IStream_Seek (stream, zero, STREAM_SEEK_CUR, &pos);
>>>> +    todo_wine ok(pos.QuadPart < image_size, "seek beyond the end of
>>>> stream: %lu >= %u\n",
>>>> +        pos.QuadPart, image_size);
>>>> +
>>>>        refcount = IStream_Release(stream);
>>>>        ok(refcount > 0, "expected stream refcount > 0\n");
>>>>
>>>> --
>>>> 2.12.1
>>>>
>>>>
>>>>
>> --
>> best, Viktor.
>>

-- 
best, Viktor.




More information about the wine-devel mailing list