BadLength X error in Xft when trying to render emoji
Submitted by Alexander Krotov
Assigned to Xorg Project Team
Link to original bug (#107534)
Description
Created attachment 141024 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
Attachment 141024, "Program to reproduce the bug":
xftbug.c
Edited by Alan Coopersmith