On Tue, Jan 17, 2017 at 08:47:09PM +0100, Sören Tempel wrote:
> Hello there,
> 
> I believe I found a bug in libsl. The drw_text function from libsl
> crashes with an X Error when the passed text contains an emoji. The
> exact error message is the following:
> 
>       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:  28
>         Current serial number in output stream:  29
> 
> I reproduced this bug with dwm and dmenu. When using dmenu you can
> reproduce this bug in the following way: First of all you will need to
> have a font installed which actually supports emojis. I used Googles
> noto emoji font [1]. After installing such a font it will be
> automatically picked up by libsl as a fallback font for emojis (assuming
> that the font you configured in config.h doesn't support them).
> 
> To reproduce the error message shown above you will then just need to
> pass an emoji to dmenu over stdin. I used the clown face (U+1F921) but
> different emojis should also work.
> 
> Even though the instructions above are limited to dmenu it also effects
> other suckless software using libsl, for instance dwm. Among other
> things dwm uses drw_text to display the title of the current window in
> the topbar. This is somewhat annoying because if you open a webpage
> containing an emoji in its title (assuming your web browser sets the
> window title to the page title) your entire window manager will crash.
> 
> I tried to resolve the issue myself the only thing I managed to figure
> out is that the Xlib function causing the crash is XftTextExtentsUtf8
> which is called from drw_font_getexts (called from drw_text). However, I
> I am too inexperienced with Xlib myself to come up with a patch.
> 
> Sören.
> 
> [1]: https://github.com/googlei18n/noto-emoji
> 

I cannot reproduce this issue, but it has been reported before.

Do you use the latest git version for dmenu? Do you have any custom patches or
changes applied?

What OS / distro and library versions do you use?

Can you provide your config.h, font configuration files and command you used
to generate the text?

-- 
Kind regards,
Hiltjo

Reply via email to