I was casually surfing the net when I came across an image which was over 8400 pixels tall. Iceweasel happily dumped that into the X server and proceeded to try and display it scaled to the window using Render. No such luck; the X server promptly failed an assertion in the large pixmap compositing code.
I found a bunch of code that casually dereferenced the large side of the glamor pixmap private without checking whether the pixmap was actually large. I added an assertion to check all of these and then fixed up the offenders one at a time. This patch sequence adds the macro where the assert lives without the assertion first, then fixes the related bugs and finally enables the assert. Keith Packard (5): glamor: Change SET_PIXMAP_FBO_CURRENT from macro to static inline glamor: Add macro __glamor_large in glamor_largepixmap.c glamor: Don't abuse large_pixmap members for regular pixmaps glamor: Handle compositing from large to small pixmaps glamor: Check large pixmap users in glamor_largepixmap.c glamor/glamor_largepixmap.c | 96 +++++++++++++++++++++++++++------------------ glamor/glamor_pixmap.c | 2 +- glamor/glamor_priv.h | 17 ++++---- 3 files changed, 68 insertions(+), 47 deletions(-) -- 2.0.1 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
