bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#41627: 28.0.50; Emacs with cairo build segfault in HELLO file


From: Eli Zaretskii
Subject: bug#41627: 28.0.50; Emacs with cairo build segfault in HELLO file
Date: Sun, 31 May 2020 20:24:41 +0300

> Cc: 41627@debbugs.gnu.org, Pip Cet <pipcet@gmail.com>
> From: Zihao Zhu <all_but_last@163.com>
> Date: Sun, 31 May 2020 23:38:28 +0800
> 
> A gdb attached backtrace generated by Emacs build with CFLAGS=-O0 -g3 in 
> attachment

Thanks, I think the situation is clear.

> 0x00000000006c5a34 in ftcrfont_open (f=0xc192d0, entity=0x1300675, 
> pixel_size=18) at ftcrfont.c:237
> 237   ftcrfont.c: 没有那个文件或目录.
> #0  0x00000000006c5a34 in ftcrfont_open (f=0xc192d0, entity=0x1300675, 
> pixel_size=18) at ftcrfont.c:237

This crashes here:

  ft_face = cairo_ft_scaled_font_lock_face (scaled_font);
  if (XFIXNUM (AREF (entity, FONT_SIZE_INDEX)) == 0)
    {
      int upEM = ft_face->units_per_EM;  <<<<<<<<<<<<<<<<<<<<<

because cairo_ft_scaled_font_lock_face returned NULL:

>         ft_face = 0x0

That function is documented to be able to return NULL:

  Returns

  The FT_Face object for font, scaled appropriately, or NULL if
  scaled_font is in an error state (see cairo_scaled_font_status()) or
  there is insufficient memory.

So it sounds like we should see if scaled_font is "in an error state",
and in any case bail out if ft_face is NULL.

Can someone please propose a patch along these lines?  I cannot easily
test a Cairo build, so I won't try showing a patch.

Thanks.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]