WINGs/wayland: guard pixman composite against zero-sized views

Font prefs panel crashed in pixman_image_composite32 during W_MapView
because a child view had zero width/height. Skip compositing for
zero-sized views.
This commit is contained in:
Window Maker 2026-05-25 13:09:59 +02:00
parent 2aeb76971a
commit 9c83db6977
2 changed files with 20 additions and 6 deletions

View File

@ -475,7 +475,7 @@ static void wl_redisplay(void *vctx, W_View *view)
}
/* Composite this view's backing into its parent's backing */
if (view->parent) {
if (view->parent && view->size.width > 0 && view->size.height > 0) {
pixman_image_t *src = (pixman_image_t *)W_GetViewBacking(view->window);
pixman_image_t *dst = (pixman_image_t *)W_GetViewBacking(view->parent->window);
if (src && dst) {

View File

@ -1,11 +1,25 @@
=== WPrefs CRASH ===
== WPrefs CRASH ===
signal 11
WPrefs(+0xe13a) [0x55555556213a]
/usr/lib64/libc.so.6(+0x3d520) [0x7ffff732e520]
/usr/lib64/libX11.so.6(XInternAtom+0x2c) [0x7ffff76067ac]
/usr/local/lib/libWINGs.so.3(WMRegisterViewForDraggedTypes+0x5b) [0x7ffff7f90c7b]
/usr/local/lib/libWINGs.so.3(WMCreateColorWell+0x16e) [0x7ffff7f6a5ce]
WPrefs(+0x13656) [0x555555567656]
/usr/lib64/libpixman-1.so.0(+0x4780d) [0x7ffff7a0380d]
/usr/lib64/libpixman-1.so.0(pixman_image_composite32+0x41) [0x7ffff79c2a81]
/usr/local/lib/libWINGs.so.3(+0x34804) [0x7ffff7f79804]
/usr/local/lib/libWINGs.so.3(+0x2d22c) [0x7ffff7f7222c]
/usr/local/lib/libWINGs.so.3(+0x2d35d) [0x7ffff7f7235d]
/usr/local/lib/libWINGs.so.3(WMHandleEvent+0x132) [0x7ffff7f6ac52]
/usr/local/lib/libWINGs.so.3(+0x45af6) [0x7ffff7f8aaf6]
/usr/local/lib/libWINGs.so.3(+0x45b22) [0x7ffff7f8ab22]
/usr/local/lib/libWINGs.so.3(+0x45b22) [0x7ffff7f8ab22]
/usr/local/lib/libWINGs.so.3(+0x45b22) [0x7ffff7f8ab22]
/usr/local/lib/libWINGs.so.3(+0x45b22) [0x7ffff7f8ab22]
/usr/local/lib/libWINGs.so.3(+0x45b22) [0x7ffff7f8ab22]
/usr/local/lib/libWINGs.so.3(W_MapView+0x36) [0x7ffff7f898e6]
/usr/local/lib/libWINGs.so.3(W_RealizeView+0xd8) [0x7ffff7f899f8]
/usr/local/lib/libWINGs.so.3(W_RealizeView+0x77) [0x7ffff7f89997]
/usr/local/lib/libWINGs.so.3(W_RealizeView+0x77) [0x7ffff7f89997]
/usr/local/lib/libWINGs.so.3(W_RealizeView+0x77) [0x7ffff7f89997]
WPrefs(+0x188c8) [0x55555556c8c8]
WPrefs(+0xe2e6) [0x5555555622e6]
/usr/local/lib/libWINGs.so.3(WMHandleEvent+0x132) [0x7ffff7f6ac52]
WPrefs(+0xdf36) [0x555555561f36]