[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#917034: xterm crashes on certain Unicode characters when font was selected with -fa



* Thomas Dickey <dickey@his.com> [2018-12-31 00:51]:

> On Sun, Dec 30, 2018 at 06:26:44PM +0100, Alexander Meyer wrote:
> ...
>> This is the behaviour I get across xterm versions:
>> (everything with libfontconfig1 2.13.1-2)
>> 
>> fonts.conf enabled:
>> 337: works
>> 338: segfault
>> 340: segfault
>> 341: segfault
> 
> Can you make a backtrace for #341, please?

Here it is:


Reading symbols from /usr/bin/xterm...Reading symbols from /usr/lib/debug/.build-id/b8/d462fb6f4969a6a228262ceff981af02a1a4d5.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=0x5555556f2430, p_pat=0x5555559dea90, kind=kind@entry=FcMatchFont, e=0x0) at fccfg.c:977
(gdb) bt full
#0  0x00007ffff7d662d1 in FcConfigEvaluate (p=0x5555556f2430, p_pat=0x5555559dea90, kind=kind@entry=FcMatchFont, e=0x0) at fccfg.c:977
        v = {type = FcTypeVoid, u = {s = 0x5555556f1ad0 " \033oUUU", i = 1433344720, b = 1433344720, d = 4.6355706220021174e-310, m = 0x5555556f1ad0, c = 0x5555556f1ad0, f = 0x5555556f1ad0, 
            l = 0x5555556f1ad0, r = 0x5555556f1ad0}}
        vl = {type = 1433014944, u = {s = 0x0, i = 0, b = 0, d = 0, m = 0x0, c = 0x0, f = 0x0, l = 0x0, r = 0x0}}
        vr = {type = 1436412560, 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\200\032oUUU\000\000\270\022jUUU\000\000\000\000\000\000\000\000\000\000\220\352\235UUU", '\000' <repeats 18 times>, "\256m\326\367\377\177\000\000\000\000\000\000\000\000\000\000\060\032oUUU\000\000\320\022jUUU\000\000\000\000\000\000\000\000\000\000\220\352\235UUU", '\000' <repeats 18 times>, "\256m\326\367\377\177\000\000\000\000\000\000\000\000\000\000\340\031oUUU\000\000\350\022jUUU\000\000\000\000\000\000\000\000\000\000\220\352\235UUU", '\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@\031oUUU\000\000\030\023jUUU\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=0x5555556f2430, p_pat=p_pat@entry=0x5555559dea90, kind=kind@entry=FcMatchFont, e=e@entry=0x555555681218) 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 = 0x5555556f24b0 "Noto Color Emoji", i = 1433347248, b = 1433347248, d = 4.6355706221270172e-310, m = 0x5555556f24b0, c = 0x5555556f24b0, f = 0x5555556f24b0, 
            l = 0x5555556f24b0, r = 0x5555556f24b0}}
        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.6355706048940074e-310, i = 1432998448, l = 93824993579568, 
            c = "0\322iUUU\000\000\002\000\000\000\000\000\000\000\060\026jUUU\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\240\316\365\301\035?\376\003\000\000\000\000\000\000\000\256\340\327\367\377\177\000\000\200\326\377\377\264\060\000\000\000"...}}
        buf2 = {u = {d = 4.6355706320533889e-310, i = 1433548160, l = 93824994129280, 
            c = "\200\065rUUU\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=0x5555556f3210, t=<optimized out>, kind=FcMatchFont, p_pat=0x5555559dea90, p=0x5555556f2430) at fccfg.c:1341
        ret = 0x0
        e = 0x555555681218
        value = {type = FcTypeString, u = {s = 0x5555556f2ce0 "", i = 1433349344, b = 1433349344, d = 4.6355706222305733e-310, m = 0x5555556f2ce0, c = 0x5555556f2ce0, f = 0x5555556f2ce0, 
            l = 0x5555556f2ce0, r = 0x5555556f2ce0}}
        v = <optimized out>
        ret = <optimized out>
        e = <optimized out>
        value = <optimized out>
        v = <optimized out>
#3  IA__FcConfigSubstituteWithPat (config=<optimized out>, config@entry=0x555555659fc0, p=p@entry=0x5555556f2430, p_pat=p_pat@entry=0x5555559dea90, 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 = 0x5555556b4640, dummy3 = 0x55555567b420}
        iter2 = {dummy1 = 0x55555568eaf0, dummy2 = 0x555555690a30, dummy3 = 0x0}
        r = 0x555555690a10
        rs = <optimized out>
        l = <optimized out>
        value = 0x555555694380
        vl = <optimized out>
        m = 0x5555556f2430
        strs = <optimized out>
        object = <optimized out>
        elt = 0x5555556a7ea0
        e = 0x5555556f2fc0
        i = <optimized out>
        nobjs = 53
        retval = 1
        tst = 0x555555694180
#4  0x00007ffff7d779bd in IA__FcFontRenderPrepare (config=0x555555659fc0, pat=pat@entry=0x5555559dea90, font=0x7ffff5428840) at fcmatch.c:719
        new = 0x5555556f2430
        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 = 1083129856, 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=0x7fffffffdb10, nsets=nsets@entry=1, p=p@entry=0x5555559dea90, result=result@entry=0x7fffffffdb0c) at fcmatch.c:863
        best = <optimized out>
        __PRETTY_FUNCTION__ = "IA__FcFontSetMatch"
#6  0x00005555555a7193 in findXftGlyph (xw=xw@entry=0x55555564deb0, given=given@entry=0x5555556bbd90, wc=wc@entry=127876) at ../fontutils.c:3861
        myReport = 0x0
        matchedFont = <optimized out>
        myFontSets = {0x5555559de400}
        myPattern = 0x5555559dea90
        myCharSet = 0x5555557232b0
        check = <optimized out>
        screen = 0x55555564e058
        which = 0x555555652c88
        result = 0x0
        fontnum = <optimized out>
        table = {19504, 21304, 23104, 24904, 26704, 28504}
        n = 0
        status = FcResultMatch
        tag = 0x5555555e2648 "fNorm"
#7  0x00005555555c7b9c 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=0x555555674ab0, 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 = 0x5555556bbd90
        tempFont = 0x0
        last = 0
        old_high = <optimized out>
        first = 0
        old_wide = <optimized out>
        curX = 2
        dpy = <optimized out>
        font0 = 0x5555556bbd90
        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 = 0x5555556bbd90
        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  0x00005555555cccfb in WriteText (xw=xw@entry=0x55555564deb0, str=str@entry=0x555555674ab0, 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  0x0000555555584829 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 0x000055555558a995 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 = 1432518520
        count = <optimized out>
        value = 21845
        laststate = 6
        thischar = 127876
        myRect = {top = 0, left = 0, bottom = 0, right = 0}
#11 0x0000555555591295 in VTparse (xw=xw@entry=0x55555564deb0) at ../charproc.c:5377
No locals.
#12 0x00005555555914a9 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


Reply to: