Your message dated Wed, 12 Nov 2025 20:12:23 -0500
with message-id <[email protected]>
and subject line Re: #917034 application crash in FcConfigEvaluate for "Noto 
Color Emoji" font
has caused the Debian Bug report #917034,
regarding application crash in FcConfigEvaluate for "Noto Color Emoji" font
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
917034: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=917034
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: xterm
Version: 340-1
Severity: important

Dear Maintainer,

after updating from 337-1 to 338-1 in testing, xterm crashes with a segfault
when certain Unicode characters appear in the buffer. This only happens when I
have selected a font using the -fa option. It doesn't seem to matter which font
it is. (I've randomly tried a few from my fc-list.)

I've installed 340-1 from unstable, but the bug persists.

As I came across this issue while reading mails in mutt, I've tried to identify
the exact characters causing it. It turned out that these commands cause the
crash:

$ /usr/bin/printf "\U0001F384"        # U+1F384 CHRISTMAS TREE
$ /usr/bin/printf "\U0001F385"        # U+1F385 FATHER CHRISTMAS
$ /usr/bin/printf "\U0001F3E1"        # U+1F3E1 HOUSE WITH GARDEN
$ /usr/bin/printf "\U0001F644"        # U+1F644 FACE WITH ROLLING EYES

Whereas these commands work fine:

$ /usr/bin/printf "\U0001F601"        # U+1F601 GRINNING FACE WITH SMILING EYES
$ /usr/bin/printf "\U0001F604"        # U+1F604 SMILING FACE WITH OPEN MOUTH 
AND SMILING EYES

To reproduce this bug, run one of the aforementioned commands after starting
xterm with e.g.

$ xterm -fa 'Noto Mono'

When leaving out -fa, xterm doesn't crash.

Please find below a backtrace.

As the bug was introduced after updating xterm (libfontconfig1 remained
untouched during that update), I'm filing this under xterm for the time being.

xterm 337-1 doesn't crash. Interestingly, though, in 337-1 all six
above-mentioned characters are not displayed at all when running with e.g.
-fa 'Noto Mono'. I just see a two-glyph-wide blank space. Whereas in 338-1 and
340-1, the two non-crashing characters U+1F601 and U+1F604 are actually
displayed.

I've found a bug report from Arch Linux that looks similar:
https://bugs.archlinux.org/task/61115
But the last comment there claims the bug disappeared in 340 which is not the
case for me.

I don't know a great deal about X font handling, so in case you need more info,
please try to explain in detail what you need to know. Thanks in advance. Also,
I don't care that much if those special glyphs are actually displayed correctly
in my xterm or not, it's just that xterm shouldn't crash.


Backtrace:

Reading symbols from /usr/bin/xterm...Reading symbols from 
/usr/lib/debug/.build-id/e1/82f855c9d3aa8701e44c1fc1d41e81eb0b0bd6.debug...done.
done.
(gdb) run -fa 'Noto Mono'
Starting program: /usr/bin/xterm -fa 'Noto Mono'
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7d662d1 in FcConfigEvaluate (p=0x5555556fdfd0, 
    p_pat=0x5555559ea680, kind=kind@entry=FcMatchFont, e=0x0) at fccfg.c:977
(gdb) bt full
#0  0x00007ffff7d662d1 in FcConfigEvaluate (p=0x5555556fdfd0, 
    p_pat=0x5555559ea680, kind=kind@entry=FcMatchFont, e=0x0) at fccfg.c:977
        v = {type = FcTypeVoid, u = {s = 0x5555556fd670 "\300\326oUUU", 
            i = 1433392752, b = 1433392752, d = 4.6355706243752135e-310, 
            m = 0x5555556fd670, c = 0x5555556fd670, f = 0x5555556fd670, 
            l = 0x5555556fd670, r = 0x5555556fd670}}
        vl = {type = 1433007920, u = {s = 0x0, i = 0, b = 0, d = 0, m = 0x0, 
            c = 0x0, f = 0x0, l = 0x0, r = 0x0}}
        vr = {type = 1436460672, u = {s = 0x0, i = 0, b = 0, d = 0, m = 0x0, 
            c = 0x0, f = 0x0, l = 0x0, r = 0x0}}
        vle = <optimized out>
        vre = <optimized out>
        m = <optimized out>
        str = <optimized out>
        op = <optimized out>
        buf1 = {u = {d = 0, i = 0, l = 0, 
            c = "\000\000\000\000\000\000\000\000 
\326oUUU\000\000H\367iUUU\000\000\000\000\000\000\000\000\000\000\200\246\236UUU",
 '\000' <repeats 18 times>, 
"\256m\326\367\377\177\000\000\000\000\000\000\000\000\000\000\320\325oUUU\000\000`\367iUUU\000\000\000\000\000\000\000\000\000\000\200\246\236UUU",
 '\000' <repeats 18 times>, 
"\256m\326\367\377\177\000\000\000\000\000\000\000\000\000\000\200\325oUUU\000\000x\367iUUU\000\000\000\000\000\000\000\000\000\000\200\246\236UUU",
 '\000' <repeats 18 times>, 
"\256m\326\367\377\177\000\000\000\000\000\000\000\000\000\000"...}}
        buf2 = {u = {d = 0, i = 0, l = 0, 
            c = 
"\000\000\000\000\000\000\000\000\340\324oUUU\000\000\250\367iUUU\000\000\000\000\000\000\000\000\000\000\025",
 '\000' <repeats 15 times>, "\a\000\000\000\000\000\000\000 
\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\020\300aUUU\000\000\017\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\260\377\377\377\377\377\377\377\000\000\000\000\000\000\000\000\002\000\000\000\060",
 '\000' <repeats 19 times>, "[\000\000\000w", '\000' <repeats 11 times>, 
"n\000\000\000|\000\000\000\t\000\000\000\000\000\000\000\017\000\000\000\000\000\000\000\025",
 '\000' <repeats 15 times>, "\260\377\377\377\377\377\377\377"...}}
#1  0x00007ffff7d66418 in FcConfigEvaluate (p=p@entry=0x5555556fdfd0, 
    p_pat=p_pat@entry=0x5555559ea680, kind=kind@entry=FcMatchFont, 
    e=e@entry=0x555555683b38) at fccfg.c:1003
        m = {xx = 1.4821969375237396e-323, xy = 6.9533490418283141e-310, 
          yx = 1.4821969375237396e-323, yy = 1}
        xx = <optimized out>
        yy = <optimized out>
        xy = <optimized out>
        yx = <optimized out>
        v = {type = FcTypeMatrix, u = {
            s = 0x3 <error: Cannot access memory at address 0x3>, i = 3, 
            b = 3, d = 1.4821969375237396e-323, m = 0x3, c = 0x3, f = 0x3, 
            l = 0x3, r = 0x3}}
        vl = {type = FcTypeVoid, u = {s = 0x5555556fe050 "Noto Color Emoji", 
            i = 1433395280, b = 1433395280, d = 4.6355706245001133e-310, 
            m = 0x5555556fe050, c = 0x5555556fe050, f = 0x5555556fe050, 
            l = 0x5555556fe050, r = 0x5555556fe050}}
        vr = {type = FcTypeString, u = {
            s = 0x7ffff7d660a4 <FcConfigCompareValue+708> 
"\205\300\017\224\300\017\266\300\351\267\375\377\377L\211\346H\211\327\350\364=",
 i = -136945500, 
            b = -136945500, d = 6.9533490418283141e-310, 
            m = 0x7ffff7d660a4 <FcConfigCompareValue+708>, 
            c = 0x7ffff7d660a4 <FcConfigCompareValue+708>, 
            f = 0x7ffff7d660a4 <FcConfigCompareValue+708>, 
            l = 0x7ffff7d660a4 <FcConfigCompareValue+708>, 
            r = 0x7ffff7d660a4 <FcConfigCompareValue+708>}}
        vle = <optimized out>
        vre = <optimized out>
        m = <optimized out>
        str = <optimized out>
        op = FcOpMatrix
        buf1 = {u = {d = 4.6355706045501377e-310, i = 1432991488, 
            l = 93824993572608, 
            c = 
"\000\267iUUU\000\000\002\000\000\000\000\000\000\000\300\372iUUU\000\000\354c\326\367\377\177\000\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\003",
 '\000' <repeats 15 times>, "\a\000\000\000\000\000\000\000 
\000\000\000\000\000\000\000\002\000\000\000UU\000\000\020\300aUUU\000\000\017\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\260\377\377\377\377\377\377\377\000\000\000\000\000\000\000\000\002\000\000\000\060",
 '\000' <repeats 19 times>, 
"\f\341\327\367\377\177\000\000\000\000\000\000\257\060\000\000\000\355\374*\tLP\204\003\000\000\000\000\000\000\000\256\340\327\367\377\177\000\000\200\334\377\377\264\060\000\000\000"...}}
        buf2 = {u = {d = 4.6355706344588957e-310, i = 1433596848, 
            l = 93824994177968, 
            c = 
"\260\363rUUU\000\000\270\220B\365\377\177\000\000\000\000\000\000\000\000\000\000\362H\327\367\377\177\000\000
 ", '\000' <repeats 15 times>, 
"\a\000\000\000\000\000\000\000\060\000\000\000\000\000\000\000\003\000\000\000\377\177\000\000\030\300aUUU\000\000\037\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\260\377\377\377\377\377\377\377\000\000\000\000\000\000\000\000\003\000\000\000\060",
 '\000' <repeats 19 times>, "[\000\000\000w", '\000' <repeats 11 times>, 
"n\000\000\000|\000\000\000\a\000\000\000\000\000\000\000\037\000\000\000\000\000\000\000
 
\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\260\377\377\377\377\377\377\377"...}}
#2  0x00007ffff7d6755f in FcConfigMatchValueList (values=0x5555556fedb0, 
    t=<optimized out>, kind=FcMatchFont, p_pat=0x5555559ea680, 
    p=0x5555556fdfd0) at fccfg.c:1341
        ret = 0x0
        e = 0x555555683b38
        value = {type = FcTypeString, u = {s = 0x5555556fe880 "", 
            i = 1433397376, b = 1433397376, d = 4.6355706246036694e-310, 
            m = 0x5555556fe880, c = 0x5555556fe880, f = 0x5555556fe880, 
            l = 0x5555556fe880, r = 0x5555556fe880}}
        v = <optimized out>
        ret = <optimized out>
        e = <optimized out>
        value = <optimized out>
        v = <optimized out>
#3  IA__FcConfigSubstituteWithPat (config=<optimized out>, 
    config@entry=0x555555659f60, p=p@entry=0x5555556fdfd0, 
    p_pat=p_pat@entry=0x5555559ea680, kind=kind@entry=FcMatchFont)
    at fccfg.c:1742
        v = {type = FcTypeVoid, u = {
            s = 0x7ffff7d7a74c <FcPatternObjectInsertElt+236> "\203E", 
            i = -136861876, b = -136861876, d = 6.9533490459598886e-310, 
            m = 0x7ffff7d7a74c <FcPatternObjectInsertElt+236>, 
            c = 0x7ffff7d7a74c <FcPatternObjectInsertElt+236>, 
            f = 0x7ffff7d7a74c <FcPatternObjectInsertElt+236>, 
            l = 0x7ffff7d7a74c <FcPatternObjectInsertElt+236>, 
            r = 0x7ffff7d7a74c <FcPatternObjectInsertElt+236>}}
        s = 0x555555668c60
        iter = {dummy1 = 0x555555668c60, dummy2 = 0x5555556b4830, 
          dummy3 = 0x55555567d0a0}
        iter2 = {dummy1 = 0x55555568ee50, dummy2 = 0x5555556aade0, 
          dummy3 = 0x0}
        r = 0x5555556aadc0
        rs = <optimized out>
        l = <optimized out>
        value = 0x5555556927e0
        vl = <optimized out>
        m = 0x5555556fdfd0
        strs = <optimized out>
        object = <optimized out>
        elt = 0x5555556a6370
        e = 0x5555556feb60
        i = <optimized out>
        nobjs = 53
        retval = 1
        tst = 0x5555556925e0
#4  0x00007ffff7d779bd in IA__FcFontRenderPrepare (config=0x555555659f60, 
    pat=pat@entry=0x5555559ea680, font=0x7ffff5428840) at fcmatch.c:719
        new = 0x5555556fdfd0
        i = <optimized out>
        fe = <optimized out>
        pe = <optimized out>
        v = {type = FcTypeBool, u = {s = 0x0, i = 0, b = 0, d = 0, m = 0x0, 
            c = 0x0, f = 0x0, l = 0x0, r = 0x0}}
        result = FcResultMatch
        variable = 0
        variations = {buf = 0x0, allocated = 0, failed = 0, len = -272072704, 
          size = 1115635585, 
          buf_static = "@\\\337\366\377\177", '\000' <repeats 63 times>, 
"@\217@", '\000' <repeats 13 times>, "@\237@\000\000\000\000\000P\217@", '\000' 
<repeats 31 times>}
        __PRETTY_FUNCTION__ = "IA__FcFontRenderPrepare"
#5  0x00007ffff7d77d2b in IA__FcFontSetMatch (config=<optimized out>, 
    sets=sets@entry=0x7fffffffe110, nsets=nsets@entry=1, 
    p=p@entry=0x5555559ea680, result=result@entry=0x7fffffffe108)
    at fcmatch.c:863
        best = <optimized out>
        __PRETTY_FUNCTION__ = "IA__FcFontSetMatch"
#6  0x00005555555a69d3 in findXftGlyph (xw=xw@entry=0x55555564deb0, 
    given=given@entry=0x5555556bbd00, wc=wc@entry=127876)
    at ../fontutils.c:3782
        myReport = 0x0
        matchedFont = <optimized out>
        myFontSets = {0x5555559ea640}
        myPattern = 0x5555559ea680
        myCharSet = 0x55555572f620
        check = <optimized out>
        screen = 0x55555564e058
        which = 0x555555652c88
        result = 0x0
        fontnum = <optimized out>
        table = {19504, 21304, 23104, 24904, 26704, 28504}
        n = 0
        status = FcResultMatch
        tag = 0x5555555e2640 "fNorm"
#7  0x00005555555c73ec in drawXtermText (xw=xw@entry=0x55555564deb0, 
    attr_flags=attr_flags@entry=0, draw_flags=<optimized out>, 
    draw_flags@entry=0, gc=0x555555659d10, start_x=2, start_y=<optimized out>, 
    chrset=0, text=0x555555674a50, len=1, on_wide=0) at ../util.c:3721
        test = <optimized out>
        part = 127876
        filler = 0
        replace = 0 '\000'
        missing = 0 '\000'
        ch = 127876
        needed = <optimized out>
        currFont = 0x5555556bbd00
        tempFont = 0x0
        last = 0
        old_high = <optimized out>
        first = 0
        old_wide = <optimized out>
        curX = 2
        dpy = <optimized out>
        font0 = 0x5555556bbd00
        values = {function = <optimized out>, plane_mask = <optimized out>, 
          foreground = 15066597, background = <optimized out>, 
          line_width = <optimized out>, line_style = <optimized out>, 
          cap_style = <optimized out>, join_style = <optimized out>, 
          fill_style = <optimized out>, fill_rule = <optimized out>, 
          arc_mode = <optimized out>, tile = <optimized out>, 
          stipple = <optimized out>, ts_x_origin = <optimized out>, 
          ts_y_origin = <optimized out>, font = <optimized out>, 
          subwindow_mode = <optimized out>, 
          graphics_exposures = <optimized out>, 
          clip_x_origin = <optimized out>, clip_y_origin = <optimized out>, 
          clip_mask = <optimized out>, dash_offset = <optimized out>, 
          dashes = <optimized out>}
        wfont0 = 0x0
        currentWin = <optimized out>
        font = 0x5555556bbd00
        wfont = 0x0
        x = 2
        y = 25
        screen = 0x55555564e058
        real_length = 1
        underline_len = 0
        font_width = <optimized out>
        did_ul = 0
        curFont = <optimized out>
        need_clipping = 0
#8  0x00005555555cc54b in WriteText (xw=xw@entry=0x55555564deb0, 
    str=str@entry=0x555555674a50, len=len@entry=1) at ../util.c:1172
        test = 65536
        screen = <optimized out>
        ld = <optimized out>
        attr_flags = 65536
        fg_bg = {fg = 0, bg = 0}
        cells = 2
        currentGC = <optimized out>
#9  0x00005555555847f9 in dotext (xw=xw@entry=0x55555564deb0, 
    charset=nrc_ASCII, buf=<optimized out>, len=1) at ../charproc.c:5584
        right = <optimized out>
        width_available = <optimized out>
        need_wrap = 0 '\000'
        did_wrap = 0 '\000'
        width_here = <optimized out>
        last_chomp = <optimized out>
        force_wrap = 0 '\000'
        screen = 0x55555564e058
        chars_chomped = <optimized out>
        next_col = 0
        offset = <optimized out>
        rmargin = 79
#10 0x000055555558a965 in doparsing (xw=xw@entry=0x55555564deb0, c=127876, 
    sp=0x555555611ea0 <myState>) at ../charproc.c:2414
        single = <optimized out>
        this_is_wide = 1
        screen = 0x55555564e058
        item = 0
        count = <optimized out>
        value = 0
        laststate = 6
        thischar = 127876
        myRect = {top = 1432518496, left = 21845, bottom = 0, right = 0}
#11 0x0000555555591265 in VTparse (xw=xw@entry=0x55555564deb0)
    at ../charproc.c:5377
No locals.
#12 0x0000555555591479 in VTRun (xw=0x55555564deb0) at ../charproc.c:7726
        screen = 0x55555564e058
#13 0x000055555557898a in main (argc=<optimized out>, argv=<optimized out>)
    at ../main.c:2826
        tblFullscreen = {{name = 0x5555555d963e "Always", code = 2}, {
            name = 0x5555555d9638 "Never", code = 3}}
        form_top = 0x55555563db80
        menu_top = 0x55555563db80
        menu_high = 0
        screen = <optimized out>
        mode = <optimized out>
        my_class = 0x55555561c260 "XTerm"
        line_speed = 15
        winToEmbedInto = 0
(gdb) quit



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

Kernel: Linux 4.18.0-3-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages xterm depends on:
ii  libc6           2.28-2
ii  libfontconfig1  2.13.1-2
ii  libfreetype6    2.9.1-3
ii  libice6         2:1.0.9-2
ii  libtinfo6       6.1+20181013-1
ii  libutempter0    1.1.6-3
ii  libx11-6        2:1.6.7-1
ii  libxaw7         2:1.0.13-1+b2
ii  libxft2         2.3.2-2
ii  libxinerama1    2:1.1.4-1
ii  libxmu6         2:1.1.2-2
ii  libxpm4         1:3.5.12-1
ii  libxt6          1:1.1.5-1
ii  xbitmaps        1.1.1-2

Versions of packages xterm recommends:
ii  x11-utils  7.7+4

Versions of packages xterm suggests:
pn  xfonts-cyrillic  <none>

-- no debconf information

--- End Message ---
--- Begin Message ---
On Wed, Nov 12, 2025 at 08:11:14PM -0500, Thomas Dickey wrote:
> Reviewing this, the remaining issue in 2019 was a bug in fontconfig,
> not in xterm.  So this can be closed.

-- 
Thomas E. Dickey <[email protected]>
https://invisible-island.net

Attachment: signature.asc
Description: PGP signature


--- End Message ---

Reply via email to