From 9c83db697755b86dbf2ce17abca2e75003312f14 Mon Sep 17 00:00:00 2001 From: Window Maker Date: Mon, 25 May 2026 13:09:59 +0200 Subject: [PATCH] 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. --- WINGs/wview_wl.c | 2 +- wprefs.log | 24 +++++++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/WINGs/wview_wl.c b/WINGs/wview_wl.c index dd10013..80afb2f 100644 --- a/WINGs/wview_wl.c +++ b/WINGs/wview_wl.c @@ -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) { diff --git a/wprefs.log b/wprefs.log index 9d72572..97ff2be 100644 --- a/wprefs.log +++ b/wprefs.log @@ -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]