user32/gdi32: Fix for a crash in create_alpha_bitmap()

Alexandre Julliard julliard at
Mon Jan 31 07:01:23 CST 2011

Peter Schlaile <peter at> writes:

> At least, wine reacts very differently than windows here :)
> Read: it crashes the application I mentioned in my previous mail:
> And: from a design perspective it sounds very strange that a fast
> track optimisation *silently* changes protection bits!

There's nothing silent about it, the protection bits have to match the
DIB state.

> That wouldn't be a problem, if windows behaved exactly the same way.
> (which it most likely does not, otherwise PNClient wouldn't crash,
> right?).

I wouldn't be surprised if there was a way to crash it on Windows too,
that app is broken, it never gives the code a chance to handle the
exception. This is not how exception handlers are supposed to work.  Of
course this specific issue would be fixed by a DIB engine, but there are
other places where exceptions can happen internally, even on Windows.

> Are you sure? 0 means: everything is transparent, and that sounds
> like: we need an alpha channel, right?

0 means there's no alpha channel, which is what we are checking here.

Alexandre Julliard
julliard at

More information about the wine-devel mailing list