I'm experiencing rare (but annoying) whole X session crashes, since
mid-2023.
To my surprise it turns out to be FVWM exiting on SIGABRT.
I was able to make these crashes more likely by exercising Chromium
screen-scraping, Firefox playing YouTube, whilst iconifying a small
window. And do so with my own debug build.
The result is the stack trace below.
Packages are from Slackware 15.0, with a local build of xorg-server at
1.21.1.10.
The fvwm-2.6.9-x86_64-4 package has been in use for some time without
crashes, so likely what's changed is my working practices, another
application, or library.
Is anything in the stack trace raise suspicion?
Is it likely (security) change to libX11 is exposing a bug, either in that
library or FVWM?
Thanks
--
Mark
Reading symbols from /opt/fvwm/bin/fvwm...
[New LWP 18689]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/opt/fvwm/bin/fvwm'.
Program terminated with signal SIGABRT, Aborted.
#0 0x00007f4f91bd5868 in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007f4f91bd5868 in raise () at /lib64/libc.so.6
#1 0x00007f4f91bbc546 in abort () at /lib64/libc.so.6
#2 0x00007f4f91bbc43f in _nl_load_domain.cold () at /lib64/libc.so.6
#3 0x00007f4f91bcd392 in () at /lib64/libc.so.6 <--
__assert_fail()
#4 0x00007f4f92ffedf5 in () at /usr/lib64/libX11.so.6 <--
_XAllocID()
#5 0x00007f4f92e6a2f8 in XRenderCreatePicture () at /usr/lib64/libXrender.so.1
#6 0x00000000004cd187 in FRenderRender (dpy=0x7568a0, win=8390156,
pixmap=8390152, mask=0, alpha=8390154, depth=24, added_alpha_percent=100,
tint=0, tint_percent=0, d=8390156, gc=0x76fc40, alpha_gc=0x76ff00, src_x=0,
src_y=0, src_w=56, src_h=56, dest_x=2, dest_y=2, dest_w=56, dest_h=56,
do_repeat=0) at FRender.c:464
#7 0x00000000004c1e65 in PGraphicsRenderPixmaps (dpy=0x7568a0, win=8390156,
pixmap=8390152, mask=0, alpha=8390154, depth=24, fra=0x7fff98bb9c40, d=8390156,
gc=0x76fc40, mono_gc=0x76fe50, alpha_gc=0x76ff00, src_x=0, src_y=0, src_w=56,
src_h=56, dest_x=2, dest_y=2, dest_w=56, dest_h=56, do_repeat=0) at
PictureGraphics.c:1012
#8 0x000000000045b808 in DrawIconPixmapWindow (fw=0x79e640, reset_bg=0,
pev=0x7fff98bb9ce0, Shadow=0x76c8b0, Relief=0x76c800, cs=-1) at icons.c:1192
#9 0x000000000045c7c2 in DrawIconWindow (fw=0x79e640, draw_title=1,
draw_pixmap=1, focus_change=0, reset_bg=0, pev=0x7fff98bb9e50) at icons.c:1490
#10 0x000000000043b08d in HandleExpose (ea=0x7fff98bb9f90) at events.c:2361
#11 0x000000000043e371 in dispatch_event (e=0x7a6e78) at events.c:4160
#12 0x000000000043738c in _pred_weed_handle_expose (display=0x7568a0,
event=0x7a6e78, arg=0x0) at events.c:266
#13 0x00000000004d0b3f in _fev_pred_weed_if (display=0x7568a0, event=0x7a6e78,
arg=0x7fff98bba3a0 "asC") at FEvent.c:176
#14 0x00000000004d0957 in _fev_pred_check_peek (display=0x7568a0,
event=0x7a6e78, arg=0x7fff98bba100 "|\nM") at FEvent.c:144
#15 0x00007f4f92fdb8b2 in XCheckIfEvent () at /usr/lib64/libX11.so.6
#16 0x00000000004d1cfb in FCheckPeekIfEvent (display=0x7568a0,
event_return=0x7fff98bba2e0, predicate=0x4d0a7c <_fev_pred_weed_if>,
arg=0x7fff98bba3a0 "asC") at FEvent.c:590
#17 0x00000000004d1b04 in FWeedIfEvents (display=0x7568a0,
weed_predicate=0x437361 <_pred_weed_handle_expose>, arg=0x0) at FEvent.c:527
#18 0x000000000043ece1 in handle_all_expose () at events.c:4545
#19 0x000000000047e12f in __raise_or_lower_window (t=0x79e640, mode=SM_RAISE,
allow_recursion=1, is_new_window=0, is_client_request=0) at stack.c:1141
#20 0x000000000047e19c in raise_or_lower_window (t=0x79e640, mode=SM_RAISE,
allow_recursion=1, is_new_window=0, is_client_request=0) at stack.c:1158
#21 0x000000000047ed6d in RaiseWindow (t=0x79e640, is_client_request=0) at
stack.c:1715
#22 0x000000000047f611 in CMD_Raise (cond_rc=0x7fff98bba9d8, exc=0x79ed70,
action=0x79b235 "") at stack.c:2048
#23 0x00000000004894c0 in __execute_function (cond_rc=0x7fff98bba9d8,
exc=0x79ee70, action=0x783990 "Raise", exec_flags=128 '\200',
args=0x7fff98bba810, has_ref_window_moved=0) at functions.c:639
#24 0x000000000048998f in __run_complex_function_items (cond_rc=0x7fff98bba9d8,
cond=105 'i', func=0x783a00, exc=0x79ee70, args=0x7fff98bba810,
has_ref_window_moved=0) at functions.c:838
#25 0x0000000000489f61 in execute_complex_function (cond_rc=0x7fff98bba9d8,
exc=0x79ef70, action=0x799d00 "IconifyRaiseFunction", desperate=0x7fff98bba960,
has_ref_window_moved=0) at functions.c:1036
#26 0x0000000000489548 in __execute_function (cond_rc=0x0, exc=0x774670,
action=0x78b7b0 "IconifyRaiseFunction", exec_flags=0 '\000', args=0x0,
has_ref_window_moved=0) at functions.c:659
#27 0x000000000048a693 in execute_function (cond_rc=0x0, exc=0x774670,
action=0x78b7b0 "IconifyRaiseFunction", exec_flags=0 '\000') at functions.c:1302
#28 0x0000000000439bbf in __handle_bpress_action (exc=0x774670, action=0x78b7b0
"IconifyRaiseFunction") at events.c:1642
#29 0x0000000000439ea7 in __handle_bpress_on_managed (exc=0x774670) at
events.c:1743
#30 0x000000000043a02f in HandleButtonPress (ea=0x7fff98bbaba0) at events.c:1801
#31 0x000000000043e371 in dispatch_event (e=0x7fff98bbabd0) at events.c:4160
#32 0x000000000043e445 in HandleEvents () at events.c:4211
#33 0x0000000000464e37 in main (argc=2, argv=0x7fff98bbb058) at fvwm.c:2590
(gdb) up
#1 0x00007f4f91bbc546 in abort () from /lib64/libc.so.6
(gdb) up
#2 0x00007f4f91bbc43f in __assert_fail_base.cold () from /lib64/libc.so.6
(gdb) up
#3 0x00007f4f91bcd392 in __assert_fail () from /lib64/libc.so.6
(gdb) up
#4 0x00007f4f92ffedf5 in _XAllocID () from /usr/lib64/libX11.so.6
(gdb) up
#5 0x00007f4f92e6a2f8 in XRenderCreatePicture () from
/usr/lib64/libXrender.so.1
(gdb) up
#6 0x00000000004cd187 in FRenderRender (dpy=0x7568a0, win=8390156,
pixmap=8390152, mask=0, alpha=8390154, depth=24, added_alpha_percent=100,
tint=0, tint_percent=0, d=8390156, gc=0x76fc40, alpha_gc=0x76ff00, src_x=0,
src_y=0, src_w=56, src_h=56, dest_x=2, dest_y=2, dest_w=56, dest_h=56,
do_repeat=0) at FRender.c:464
464 alpha_picture = FRenderCreatePicture(
(gdb) list
459
460 if (added_alpha_percent >= 100)
461 {
462 if (alpha != None)
463 {
464 alpha_picture = FRenderCreatePicture(
465 dpy, alpha, PFrenderAlphaFormat, pam,
&pa);
466 }
467 else if (mask != None)
468 {
-rw-r--r-- 1 root root 49773 Oct 12 18:49
/var/log/packages/libX11-1.8.7-x86_64-1_slack15.0
-rw-r--r-- 1 root root 12096 Apr 1 2021 /var/log/packages/fvwm-2.6.9-x86_64-4
+--------------------------+
Tue Oct 3 22:19:10 UTC 2023
patches/packages/libX11-1.8.7-x86_64-1_slack15.0.txz: Upgraded.
This update fixes security issues:
libX11: out-of-bounds memory access in _XkbReadKeySyms().
libX11: stack exhaustion from infinite recursion in PutSubImage().
libX11: integer overflow in XCreateImage() leading to a heap overflow.
For more information, see:
https://lists.x.org/archives/xorg-announce/2023-October/003424.html
https://www.cve.org/CVERecord?id=CVE-2023-43785
https://www.cve.org/CVERecord?id=CVE-2023-43786
https://www.cve.org/CVERecord?id=CVE-2023-43787
(* Security fix *)
+--------------------------+
Thu Jun 15 18:59:33 UTC 2023
patches/packages/libX11-1.8.6-x86_64-1_slack15.0.txz: Upgraded.
This update fixes buffer overflows in InitExt.c that could at least cause
the client to crash due to memory corruption.
For more information, see:
https://www.cve.org/CVERecord?id=CVE-2023-3138
(* Security fix *)
+--------------------------+
Mon Jun 7 18:53:49 UTC 2021
x/libX11-1.7.2-x86_64-1.txz: Upgraded.
This is a bug fix release, correcting a regression introduced by and
improving the checks from the fix for CVE-2021-31535.
+--------------------------+
Wed May 19 21:05:00 UTC 2021
x/libX11-1.7.1-x86_64-1.txz: Upgraded.
This update fixes missing request length checks in libX11 that can lead
to
the emission of extra X protocol requests to the X server.
For more information, see:
https://lists.x.org/archives/xorg-announce/2021-May/003088.html
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-31535
(* Security fix *)
$ xdpyinfo
name of display: :1
version number: 11.0
vendor string: The X.Org Foundation
vendor release number: 12101010
X.Org version: 1.21.1.10
maximum request size: 16777212 bytes
motion buffer size: 256
bitmap unit, bit order, padding: 32, LSBFirst, 32
image byte order: LSBFirst
number of supported pixmap formats: 7
supported pixmap formats:
depth 1, bits_per_pixel 1, scanline_pad 32
depth 4, bits_per_pixel 8, scanline_pad 32
depth 8, bits_per_pixel 8, scanline_pad 32
depth 15, bits_per_pixel 16, scanline_pad 32
depth 16, bits_per_pixel 16, scanline_pad 32
depth 24, bits_per_pixel 32, scanline_pad 32
depth 32, bits_per_pixel 32, scanline_pad 32
keycode range: minimum 8, maximum 255
focus: window 0x400000c, revert to Parent
number of extensions: 28
BIG-REQUESTS
Composite
DAMAGE
DOUBLE-BUFFER
DPMS
DRI2
DRI3
GLX
Generic Event Extension
MIT-SCREEN-SAVER
MIT-SHM
Present
RANDR
RECORD
RENDER
SHAPE
SYNC
X-Resource
XC-MISC
XFIXES
XFree86-DGA
XFree86-VidModeExtension
XINERAMA
XInputExtension
XKEYBOARD
XTEST
XVideo
XVideo-MotionCompensation
default screen number: 0
number of screens: 1
screen #0:
dimensions: 5120x1200 pixels (1354x317 millimeters)
resolution: 96x96 dots per inch
depths (7): 24, 1, 4, 8, 15, 16, 32
root window id: 0x6b2
depth of root window: 24 planes
number of colormaps: minimum 1, maximum 1
default colormap: 0x20
default number of colormap cells: 256
preallocated pixels: black 0, white 16777215
options: backing-store WHEN MAPPED, save-unders NO
largest cursor: 64x64
current input event mask: 0xda003f
KeyPressMask KeyReleaseMask ButtonPressMask
ButtonReleaseMask EnterWindowMask LeaveWindowMask
StructureNotifyMask SubstructureNotifyMask
SubstructureRedirectMask
PropertyChangeMask ColormapChangeMask
number of visuals: 504
default visual id: 0x21
[...]