"#ifdef FB_24_32BIT"'d code in fbCopyArea() doesn't check bit depth and may crash if source is 32-bit and destination is not 24-bit. This happens for me every time I run xzgv in dual-screen configuration (screen 0 is 16-bit, screen 1 is 24-bit, and best visual for this configuration is 32-bit).
Created attachment 10083 [details] [review]
7.3 has the same code.
the whole 24_32 code seems so stunningly broken that i'm not sure we can even try to fix this for 1.7. pushing out to 7.6.
Tagging patch; will triage later.
I really don't see this patch being correct at all. If we ever hit this path there's a much more fundamental assumption being violated elsewhere.
I'd be interested to see a better backtrace from this case.
I may still have the hardware that triggered this bug; will try to reproduce sometime later.
This is not apparently affecting too many users, and fixing it would require more code change that I'd feel comfortable with in the stable branch. Moving to the 1.11 tracker.
This can't happen anymore now that 24bpp support is dead.