Skip to content

wmaker segfaults immediately (related to libfontconfig1 update) #62

@d-torrance

Description

@d-torrance

From Debian bug #1126087:

Date: Wed, 21 Jan 2026 18:08:04 +0100
From: Andreas Metzler ametzler@bebt.de
To: Debian Bug Tracking System submit@bugs.debian.org
Subject: wmaker segfaults immediately (related to libfontconfig1 update)
Message-ID: aXEH9Fvynh90G0Sb@argenau.bebt.de
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
X-Reportbug-Version: 13.2.0
Delivered-To: submit@bugs.debian.org
Package: wmaker
Version: 0.96.0-4+b1
Severity: serious

Iirc two days ago (Mon 19 Jan) wmaker stopped working, it crashes
immediately. Downgrading libfontconfig1 from 2.17.1-3 to 2.15.0-2.4
(and libpangoft2-1.0-0 to 1.56.4-1) makes the crash go away.

I have rebuilt with DEB_BUILD_OPTIONS="nostrip noopt" to get a
backtrace (in Xnest):

-----------------
GNU gdb (Debian 17.1-1) 17.1
Copyright (C) 2025 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/libexec/WindowMaker/wmaker...
(gdb) set pagination 0
(gdb) run
Starting program: /usr/libexec/WindowMaker/wmaker

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.debian.net/>
Enable debuginfod for this session? (y or [n]) y
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/x86_64-linux-gnu/libthread_db.so.1".
[Detaching after fork from child process 158471]
Xlib:  extension "MIT-SHM" missing on display ":1".
Fontconfig warning: using without calling FcInit()
Xlib:  extension "MIT-SHM" missing on display ":1".
Fontconfig warning: using without calling FcInit()

Program received signal SIGSEGV, Segmentation fault.
Download failed: Invalid argument.  Continuing without source file ./src/./src/fcpat.c.
FcPatternObjectAddWithBinding (p=0x0, object=12, value=...,
    binding=FcValueBindingStrong, append=1) at ./src/fcpat.c:654
⚠️ warning: 654  ./src/fcpat.c: No such file or directory
(gdb) backtrace full
#0  FcPatternObjectAddWithBinding (p=0x0, object=12, value=...,
    binding=FcValueBindingStrong, append=1) at ./src/fcpat.c:654
        e = <optimized out>
        newp = <optimized out>
        prev = <optimized out>
        bail0 = <optimized out>
#1  0x00007ffff7f5e8b5 in makeFontOfSize (
    font=0x555555641540 "sans serif:pixelsize=12:xlfd=-*-helvetica-medium-r-normal-*-%d-*-*-*-*-*-*-*", size=0, fallback=0x0) at ./WINGs/wfont.c:109
        pattern = 0x0
        result = 0x7ffff7ddfb17 <_XAllocID+39> "H\211\330[\303\017\037@"
#2  0x00007ffff7f5edb9 in WMSystemFontOfSize (scrPtr=0x555555641660, size=0)
    at ./WINGs/wfont.c:265
        font = 0x7ffff7ffd000 <_rtld_global>
        fontSpec = 0x1 <error: Cannot access memory at address 0x1>
        __func__ = "WMSystemFontOfSize"
#3  0x00007ffff7f62c6f in WMCreateScreenWithRContext (display=0x5555556358e0,
    screen=0, context=0x555555637440) at ./WINGs/widgets.c:764
        scrPtr = 0x555555641660
        gcv = {function = 3, plane_mask = 6536558756890480384,
          foreground = 5330257, background = 11446958, line_width = 1,
          line_style = 0, cap_style = -7672, join_style = 32767,
          fill_style = 2, fill_rule = 21845, arc_mode = -135301844, tile = 0,
          stipple = 2097160, ts_x_origin = 0, ts_y_origin = 0,
          font = 93824993155296, subwindow_mode = 1, graphics_exposures = 0,
          clip_x_origin = 1432581184, clip_y_origin = 21845,
          clip_mask = 140737488346352, dash_offset = 80, dashes = 0 '\000'}
        stipple = 2097160
        initialized = 1
        atomNames = {0x7ffff7f900fb "_GNUSTEP_WM_ATTR",
          0x7ffff7f9010c "WM_DELETE_WINDOW", 0x7ffff7f9011d "WM_PROTOCOLS",
          0x7ffff7f9012a "CLIPBOARD", 0x7ffff7f90134 "XdndAware",
          0x7ffff7f9013e "XdndSelection", 0x7ffff7f9014c "XdndEnter",
          0x7ffff7f90156 "XdndLeave", 0x7ffff7f90160 "XdndPosition",
          0x7ffff7f9016d "XdndDrop", 0x7ffff7f90176 "XdndFinished",
          0x7ffff7f90183 "XdndTypeList", 0x7ffff7f90190 "XdndActionList",
          0x7ffff7f9019f "XdndActionDescription", 0x7ffff7f901b5 "XdndStatus",
          0x7ffff7f901c0 "XdndActionCopy", 0x7ffff7f901cf "XdndActionMove",
          0x7ffff7f901de "XdndActionLink", 0x7ffff7f901ed "XdndActionAsk",
          0x7ffff7f901fb "XdndActionPrivate",
          0x7ffff7f9020d "_WINGS_DND_MOUSE_OFFSET", 0x7ffff7f90225 "WM_STATE",
          0x7ffff7f9022e "UTF8_STRING", 0x7ffff7f9023a "_NET_WM_NAME",
          0x7ffff7f90247 "_NET_WM_ICON_NAME", 0x7ffff7f90259 "_NET_WM_ICON"}
        atoms = {0, 0, 0, 0, 140737488346712, 140737343325422, 93824993169136,
          140737488346456, 140733193388035, 5, 93824993164736,
          140737343326889, 93824993155296, 6536558756890480384, 0,
          93824993164736, 0, 93824993161712, 0, 93824993164736, 1432574176,
          140737343331827, 0, 93824993155296, 140737488346624,
          6536558756890480384}
        i = 8
        __func__ = "WMCreateScreenWithRContext"
#4  0x00007ffff7f623f9 in WMCreateScreen (display=0x5555556358e0, screen=0)
    at ./WINGs/widgets.c:564
No locals.
#5  0x0000555555589998 in wShowCrashingDialogPanel (whatSig=11)
    at ./src/dialog.c:1715
        panel = 0x5555556371f0
        scr = 0x555555637cf0
        font = 0x7ffff7ddff52 <_XReply+866>
        logo = 0x5555556358e0
        screen_no = 0
        scr_width = 1024
        scr_height = 768
        action = 21845
        buf = "@\337\377\377\377\177\000\000PlcUUU\000\000\001\000\000\000\000\000\000\000\377\353\334\367\377\177\000\000\342\334bUUU\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\240RcUUU\000\000\n\000\000\000\000\000\000\000\001\000\004", '\000' <repeats 29 times>, "\270\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\320\377\367\377\177\000\000VL\252\367\377\177\000\000\270\302`UUU\000\000\000\000\000\000\000\000\000\000\270\302`UUU\000\000\000\000\000\000\000\000\000\000 ", '\000' <repeats 15 times>, "\030\000\000\000\000\000\000\000"...
        __func__ = "wShowCrashingDialogPanel"
#6  0x00005555555b2f74 in showCrashDialog (sig=11) at ./src/monitor.c:52
        crashAction = -7672
        __func__ = "showCrashDialog"
#7  0x00005555555b3335 in MonitorLoop (argc=1, argv=0x7fffffffe1f8)
    at ./src/monitor.c:128
        pid = 158471
        exited = 158471
        child_argv = 0x5555556358c0
        i = 2
        status = 11
        last_start = 1768979031
        error = 0
        __func__ = "MonitorLoop"
#8  0x00005555555aa410 in main (argc=1, argv=0x7fffffffe1f8)
    at ./src/main.c:609
        i_am_the_monitor = 1
        i = 1
        len = 66
        str = 0x55555562dca0 "DISPLAY=:1"
        alt = 0x0
        __func__ = "main"
(gdb) info registers
rax            0xc                 12
rbx            0x0                 0
rcx            0x4028000000000000  4622945017495814144
rdx            0x2                 2
rsi            0xc                 12
rdi            0x0                 0
rbp            0x7fffffffdbb0      0x7fffffffdbb0
rsp            0x7fffffffdb30      0x7fffffffdb30
r8             0x1                 1
r9             0x1                 1
r10            0x71                113
r11            0x202               514
r12            0x1                 1
r13            0x2                 2
r14            0x7fffffffe208      140737488347656
r15            0x55555560c2b8      93824992985784
rip            0x7ffff79663c5      0x7ffff79663c5 <FcPatternObjectAddWithBinding+21>
eflags         0x10206             [ PF IF RF ]
cs             0x33                51
ss             0x2b                43
ds             0x0                 0
es             0x0                 0
fs             0x0                 0
gs             0x0                 0
fs_base        0x7ffff6683940      140737327413568
gs_base        0x0                 0
(gdb) x/16i $pc
=> 0x7ffff79663c5 <FcPatternObjectAddWithBinding+21>: mov    0x10(%rdi),%eax
   0x7ffff79663c8 <FcPatternObjectAddWithBinding+24>:   cmp    $0xffffffff,%eax
   0x7ffff79663cb <FcPatternObjectAddWithBinding+27>:
    je     0x7ffff796641e <FcPatternObjectAddWithBinding+110>
   0x7ffff79663cd <FcPatternObjectAddWithBinding+29>:   mov    %rdi,%rbp
   0x7ffff79663d0 <FcPatternObjectAddWithBinding+32>:   mov    %esi,%r15d
   0x7ffff79663d3 <FcPatternObjectAddWithBinding+35>:   mov    $0x1,%edi
   0x7ffff79663d8 <FcPatternObjectAddWithBinding+40>:   mov    $0x20,%esi
   0x7ffff79663dd <FcPatternObjectAddWithBinding+45>:   mov    %r9d,0xc(%rsp)
   0x7ffff79663e2 <FcPatternObjectAddWithBinding+50>:   mov    %rcx,%r14
   0x7ffff79663e5 <FcPatternObjectAddWithBinding+53>:   mov    %r8d,%r12d
   0x7ffff79663e8 <FcPatternObjectAddWithBinding+56>:
    call   0x7ffff79474d0 <calloc@plt>
   0x7ffff79663ed <FcPatternObjectAddWithBinding+61>:   mov    %rax,%rbx
   0x7ffff79663f0 <FcPatternObjectAddWithBinding+64>:   test   %rax,%rax
   0x7ffff79663f3 <FcPatternObjectAddWithBinding+67>:
    je     0x7ffff796641e <FcPatternObjectAddWithBinding+110>
   0x7ffff79663f5 <FcPatternObjectAddWithBinding+69>:   mov    %r13d,%edi
   0x7ffff79663f8 <FcPatternObjectAddWithBinding+72>:   mov    %r14,%rsi
(gdb) thread apply all backtrace

Thread 1 (Thread 0x7ffff6683940 (LWP 158468) "wmaker"):
#0  FcPatternObjectAddWithBinding (p=0x0, object=12, value=..., binding=FcValueBindingStrong, append=1) at ./src/fcpat.c:654
#1  0x00007ffff7f5e8b5 in makeFontOfSize (font=0x555555641540 "sans serif:pixelsize=12:xlfd=-*-helvetica-medium-r-normal-*-%d-*-*-*-*-*-*-*", size=0, fallback=0x0) at ./WINGs/wfont.c:109
#2  0x00007ffff7f5edb9 in WMSystemFontOfSize (scrPtr=0x555555641660, size=0) at ./WINGs/wfont.c:265
#3  0x00007ffff7f62c6f in WMCreateScreenWithRContext (display=0x5555556358e0, screen=0, context=0x555555637440) at ./WINGs/widgets.c:764
#4  0x00007ffff7f623f9 in WMCreateScreen (display=0x5555556358e0, screen=0) at ./WINGs/widgets.c:564
#5  0x0000555555589998 in wShowCrashingDialogPanel (whatSig=11) at ./src/dialog.c:1715
#6  0x00005555555b2f74 in showCrashDialog (sig=11) at ./src/monitor.c:52
#7  0x00005555555b3335 in MonitorLoop (argc=1, argv=0x7fffffffe1f8) at ./src/monitor.c:128
#8  0x00005555555aa410 in main (argc=1, argv=0x7fffffffe1f8) at ./src/main.c:609
(gdb) quit
-----------------

Throwing some printfs at WINGs/wfont.c yields that the crash happens
at calling FcPatternAddDouble in the else branch of

	if (size > 0) {
		FcPatternDel(pattern, FC_PIXEL_SIZE);
		FcPatternAddDouble(pattern, FC_PIXEL_SIZE, (double)size);
	} else if (size == 0 && !hasProperty(pattern, "size") && !hasProperty(pattern, FC_PIXEL_SIZE)) {
		FcPatternAddDouble(pattern, FC_PIXEL_SIZE, (double)DEFAULT_SIZE);
	}

cu Andreas

-- System Information:
Debian Release: forky/sid
APT prefers testing
APT policy: (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 6.17.13+deb14-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=de_AT.UTF-8, LC_CTYPE=de_AT.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages wmaker depends on:
ii libc6 2.42-9
ii libexif12 0.6.25-1+b1
ii libfontconfig1 2.17.1-3
ii libwings3 0.96.0-4+b1
ii libwraster6 0.96.0-4+b1
ii libwutil5 0.96.0-4+b1
ii libx11-6 2:1.8.12-1+b1
ii libxext6 2:1.3.4-1+b4
ii libxinerama1 2:1.1.4-3+b5
ii libxpm4 1:3.5.17-1+b4
ii wmaker-common 0.96.0-4+b1

wmaker recommends no packages.

Versions of packages wmaker suggests:
ii desktop-base 14.0.0~pre2
ii mlterm [x-terminal-emulator] 3.9.4-3
pn wmaker-data
pn wmaker-utils
ii x11-apps 7.7+11+b1
ii xterm [x-terminal-emulator] 406-1

-- no debconf information

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions