[PATCH 5/5] user32: Correctly calculate the client size of a minimized window.

Alexandre Julliard julliard at winehq.org
Fri Dec 22 11:35:49 CST 2017


Zebediah Figura <z.figura12 at gmail.com> writes:

> On 12/21/2017 09:22 AM, Alexandre Julliard wrote:
>> Zebediah Figura <z.figura12 at gmail.com> writes:
>> 
>>> Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
>>> ---
>>> This mitigates an intermittent failure in the tests for LockWindowUpdate() on
>>> the testbot, reducing it from a crash to a normal failure. For as-yet
>>> undetermined reasons, the test window is being minimized, causing GetPixel()
>>> to attempt to access memory around (-32000,-32000) pixels outside of the
>>> window's actual bitmap.
>> 
>> No matter how screwed up the window position may be, it shouldn't access
>> memory outside of the bitmap. Any chance you could write a test
>> reproducing this crash?
>> 
>
> Sure. I've attached a simple test program that creates a window,
> minimizes it, and tries to get the pixel at (10,10). On my machine this
> crashes with the backtrace below. dibdrv_GetPixel() only appears to test
> whether the requested pixel is within the bounds of the DIB rect
> relative to the position of the DIB rect, so it doesn't prevent this.

Thanks for the test, the crash should be fixed now.

We really shouldn't be creating a surface at all for minimized windows,
but I'll fix that one after code freeze.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list