Subject: bug#39797: Emacs crashes when using Noto Color Emoji font

From: Mike FABIAN <[email-masked]>
Date: Wed, 26 Feb 2020 10:13:09 +0100

File to reproduce the problem:

$ cat reproduce-crash.el 
(set-fontset-font t '(#x10000 . #x1FFFF) '("Noto Color Emoji" . "unicode-bmp") nil 'append) (i
nsert "🥰")

(Also attached to this mail).

Then the crash can be reproduced like this:

$ emacs -q --file reproduce-crash.el --eval '(eval-buffer)'
X protocol error: BadLength (poly request too large or internal Xlib length error) on protocol
 request 138
When compiled with GTK, Emacs cannot recover from X disconnects.
This is a GTK bug: https://gitlab.gnome.org/GNOME/gtk/issues/221
For details, see etc/PROBLEMS.
Fatal error 6: Aborted

It happens with Emacs 26.3 and also whith Emacs compiled from current
git master.

A similar problem happens when trying to show that font with "xfd"

$ xfd -fa "Noto Color Emoji"
Warning: Missing charsets in String to FontSet conversion
X Error of failed request:  BadLength (poly request too large or internal Xlib length error)
  Major opcode of failed request:  138 (RENDER)
  Minor opcode of failed request:  20 (RenderAddGlyphs)
  Serial number of failed request:  208
  Current serial number in output stream:  271

This color emoji font contains bitmaps of emoji.

-- 
Mike FABIAN <[email-masked]>

(set-fontset-font t '(#x10000 . #x1FFFF) '("Noto Color Emoji" . "unicode-bmp") nil 'append) (insert "🥰")