Bug 107534 - BadLength X error in Xft when trying to render emoji
Summary: BadLength X error in Xft when trying to render emoji
Status: RESOLVED MOVED
Alias: None
Product: xorg
Classification: Unclassified
Component: Lib/Xft (show other bugs)
Version: unspecified
Hardware: Other All
: medium major
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-08-09 11:26 UTC by Alexander Krotov
Modified: 2018-08-10 20:15 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Program to reproduce the bug (604 bytes, text/x-csrc)
2018-08-09 11:26 UTC, Alexander Krotov
no flags Details
Program to reproduce the bug (610 bytes, patch)
2018-08-09 16:19 UTC, Alexander Krotov
no flags Details | Splinter Review

Description Alexander Krotov 2018-08-09 11:26:33 UTC
Created attachment 141024 [details]
Program to reproduce the bug

Program to reproduce the bug is attached. OK1 is printed, OK2 is not.

$ gcc xftbug.c -lX11 -lXft -I /usr/include/freetype2 -lfontconfig
$ XFT_DEBUG=1 ./a.out
XFT_DEBUG=1
XftFontOpenName "Noto Color Emoji": Pattern has 1 elts (size 16)
        family: "Noto Color Emoji"(s)

Match Pattern has 44 elts (size 48)
        family: "Noto Color Emoji"(s)
        familylang: "en"(s)
        style: "Regular"(s)
        stylelang: "en"(s)
        fullname: "Noto Color Emoji"(s)
        fullnamelang: "en"(s)
        slant: 0(i)(s)
        weight: 80(i)(s)
        width: 100(i)(s)
        size: 81.6213(f)(w)
        pixelsize: 109(f)(s)
        foundry: "GOOG"(w)
        antialias: False(s)
        hintstyle: 1(i)(w)
        hinting: True(s)
        verticallayout: False(s)
        autohint: False(s)
        globaladvance: True(s)
        file: "/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf"(w)
        index: 0(i)(w)
        outline: False(w)
        scalable: True(w)
        dpi: 96.1514(f)(s)
        rgba: 0(i)(s)
        scale: 1(f)(s)
        minspace: False(s)
        matrix: [0.147021 0; 0 0.147021](w)
        charset:
        0000: 00002001 03ff0409 00000000 00000000 00000000 00004200 00000000 00000000
        0020: 00002000 10000000 00000200 00000000 00000000 00000000 00000000 00000008
        0021: 00000000 02000004 00000000 00000000 03f00000 00000600 00000000 00000000
        0023: 0c000000 00000100 00000000 00000000 00000000 00000000 00008000 070ffe00
        0024: 00000000 00000000 00000000 00000000 00000000 00000000 00000004 00000000
        0025: 00000000 00000000 00000000 00000000 00000000 00400c00 00000001 78000000
        0026: 2132401f 0700c44d 000fff05 88000169 1afc0000 60030c03 001ac130 27bf0600
        0027: 2054bf24 00180102 00b85090 00000018 00e00000 80010002 00000000 00000000
        0029: 00000000 00300000 00000000 00000000 00000000 00000000 00000000 00000000
        002b: 180000e0 00000000 00210000 00000000 00000000 00000000 00000000 00000000
        0030: 00000000 20010000 00000000 00000000 00000000 00000000 00000000 00000000
        0032: 00000000 00000000 00000000 00000000 02800000 00000000 00000000 00000000
        01f0: 00000010 00000000 00000000 00000000 00000000 00000000 00008000 00000000
        01f1: 00000000 00000000 00000000 c0030000 07fe4000 00000000 00000000 ffffffc0
        01f2: 04000006 07fc8000 00030000 00000000 00000000 00000000 00000000 00000000
        01f3: ffffffff fffffff3 ffffffff ffffffff cecfffff ffffffff ffffffff ffb9ffff
        01f4: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff bfffffff
        01f5: ffffffff 3fffffff ffff7e00 07f980ff 00613c80 10060130 700e001c fc08810a
        01f6: ffffffff ffffffff 0000ffff 00000000 ffffffff ffffffff 0007f83f 01f91a3f
        01f9: ffff0000 77ffffff ffff1fbf 00000fff 00ffffff 00000000 ffff0001 0000007f
        0e00: 00000000 03ff0000 00000000 87fffffe 00000000 00000000 00000000 00000000
        0fe4: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00007fe0
        0fe8: 00000000 00ffd000 00000000 00000000 00000000 00000000 00000000 00000000
(w)
        lang: und-zsye(s)
        fontversion: 131793(i)(s)
        capability: "otlayout:DFLT"(w)
        fontformat: "TrueType"(w)
        embolden: False(s)
        embeddedbitmap: True(s)
        decorative: False(s)
        lcdfilter: 1(i)(w)
        namelang: "en"(s)
        prgname: "a.out"(s)
        postscriptname: "NotoColorEmoji"(w)
        color: True(s)
        symbol: False(s)
        pixelsizefixupfactor: 0.147021(f)(w)
        render: True(s)
        maxglyphmemory: 1048576(i)(s)

XftFontInfoFill: /usr/share/fonts/truetype/noto/NotoColorEmoji.ttf: 0 (109 pixels)
OK1
X Error of failed request:  BadLength (poly request too large or internal Xlib length error)
  Major opcode of failed request:  139 (RENDER)
  Minor opcode of failed request:  20 (RenderAddGlyphs)
  Serial number of failed request:  11
  Current serial number in output stream:  12
Comment 1 Alexander Krotov 2018-08-09 15:37:43 UTC
Maybe related bug: https://bugs.freedesktop.org/show_bug.cgi?id=4705
Comment 2 Alexander Krotov 2018-08-09 15:38:35 UTC
This does reproduce with git version of Xft, c418dc7594f98359ae10815f62ee3efc0a511cf8
Comment 3 Alexander Krotov 2018-08-09 16:19:50 UTC
Created attachment 141026 [details] [review]
Program to reproduce the bug

Version with XSynchronize
Comment 4 Alexander Krotov 2018-08-09 20:25:35 UTC
The last attachment also segfaults on Debian in FcConfigSubstituteWithPat, similarly to https://bugs.freedesktop.org/show_bug.cgi?id=107531
Comment 5 Alexander Krotov 2018-08-09 20:28:02 UTC
Hmm, it is not Debian vs non-Debian, the reason for segfault seems to be a rather complicated .fonts.conf. Without .fonts.conf I get the same X error.
Comment 6 GitLab Migration User 2018-08-10 20:15:57 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/lib/libxft/issues/6.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.