GNU bug report logs - #36166
27.0.50; Crash visiting HELLO when fringe-mode is disabled

Previous Next

Package: emacs;

Reported by: Robert Pluim <rpluim <at> gmail.com>

Date: Tue, 11 Jun 2019 08:17:01 UTC

Severity: normal

Found in version 27.0.50

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 36166 in the body.
You can then email your comments to 36166 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#36166; Package emacs. (Tue, 11 Jun 2019 08:17:01 GMT) Full text and rfc822 format available.

Message #3 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Robert Pluim <rpluim <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 27.0.50; Crash visiting HELLO when fringe-mode is disabled
Date: Tue, 11 Jun 2019 10:15:57 +0200
HOME=/tmp src/emacs /tmp/HELLO

where /tmp/.emacs.d/init.el contains:

(custom-set-variables
'(fringe-mode 0 nil (fringe))
 )

and /tmp/HELLO is etc/HELLO with all the non-ASCII removed except for
the line in Maldivian. I donʼt have a font that can display Maldivian.

gdb:

Thread 3 received signal SIGSEGV, Segmentation fault.
ns_compute_glyph_string_overhangs (s=0x7ffeefbfc7e0) at nsterm.m:2941
2941	      if (EQ (font->driver->type, Qns))
(gdb) bt
#0  ns_compute_glyph_string_overhangs (s=0x7ffeefbfc7e0) at nsterm.m:2941
#1  0x0000000100039d74 in draw_glyphs (w=<optimized out>, x=562, row=0x1050c5b00, area=TEXT_AREA, start=0, end=50,
    hl=DRAW_NORMAL_TEXT, overlaps=0) at xdisp.c:27050
#2  0x0000000100038e52 in gui_write_glyphs (w=0x105090610, updated_row=0x0, start=<optimized out>,
    updated_area=<optimized out>, len=<optimized out>) at xdisp.c:29207
#3  0x000000010000a38a in update_text_area (w=<optimized out>, updated_row=<optimized out>, vpos=<optimized out>)
    at dispnew.c:3701
#4  update_window_line (w=0x105090610, vpos=<optimized out>, mouse_face_overwritten_p=0x7ffeefbfd8b7) at dispnew.c:3944
#5  0x0000000100004e2e in update_window (w=<optimized out>, force_p=<optimized out>) at dispnew.c:3482
#6  0x0000000100004394 in update_window_tree (w=0x7ffeefbfc7e0, force_p=<optimized out>) at dispnew.c:3220
#7  0x0000000100004378 in update_window_tree (w=0x7ffeefbfc7e0, force_p=<optimized out>) at dispnew.c:3218
#8  0x00000001000041d9 in update_frame (f=0x10508ee35, force_p=<optimized out>, inhibit_hairy_id_p=224) at dispnew.c:3109
#9  0x0000000100028d66 in redisplay_internal () at xdisp.c:14541

'font' is NULL, so the crash is not surprising.

emacs-26 as of 4904fb352c14539e1c6927e8c893abb037bca8a0 crashes the
same way.

In GNU Emacs 27.0.50 (build 43, x86_64-apple-darwin18.6.0, NS appkit-1671.50 Version 10.14.5 (Build 18F132))
 of 2019-06-10 built on rpluim-mac
Repository revision: cdd994b2feeb248d1e02892739c6d6b4d2c5bbdb
Repository branch: master
Windowing system distributor 'Apple', version 10.3.1671
System Description:  Mac OS X 10.14.5

Recent messages:
Annotating...
Redisplaying annotation...done (Spanned from 10247.3 to 5.3 days old)
Annotating... done
Mark saved where search started
Type "q" to restore previous buffer.
Creating customization buffer...
Creating customization items...done
Resetting customization items...done
Creating customization setup...done
ad-handle-definition: `report-emacs-bug' got redefined

Configured using:
 'configure -C'

Configured features:
NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS THREADS
JSON PDUMPER LCMS2 GMP




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#36166; Package emacs. (Tue, 11 Jun 2019 14:28:02 GMT) Full text and rfc822 format available.

Message #6 received at 36166 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Robert Pluim <rpluim <at> gmail.com>
Cc: 36166 <at> debbugs.gnu.org
Subject: Re: bug#36166: 27.0.50;
 Crash visiting HELLO when fringe-mode is disabled
Date: Tue, 11 Jun 2019 17:26:57 +0300
> From: Robert Pluim <rpluim <at> gmail.com>
> Date: Tue, 11 Jun 2019 10:15:57 +0200
> 
> 
> HOME=/tmp src/emacs /tmp/HELLO
> 
> where /tmp/.emacs.d/init.el contains:
> 
> (custom-set-variables
> '(fringe-mode 0 nil (fringe))
>  )
> 
> and /tmp/HELLO is etc/HELLO with all the non-ASCII removed except for
> the line in Maldivian. I donʼt have a font that can display Maldivian.
> 
> gdb:
> 
> Thread 3 received signal SIGSEGV, Segmentation fault.
> ns_compute_glyph_string_overhangs (s=0x7ffeefbfc7e0) at nsterm.m:2941
> 2941	      if (EQ (font->driver->type, Qns))
> (gdb) bt
> #0  ns_compute_glyph_string_overhangs (s=0x7ffeefbfc7e0) at nsterm.m:2941
> #1  0x0000000100039d74 in draw_glyphs (w=<optimized out>, x=562, row=0x1050c5b00, area=TEXT_AREA, start=0, end=50,
>     hl=DRAW_NORMAL_TEXT, overlaps=0) at xdisp.c:27050

This appears to be NS-specific: the NS version of the
compute_glyph_string_overhangs method is very different from the X and
w32 versions, and lacks some safety devices.  (I did try the recipe on
w32, and didn't see any crashes.)

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#36166; Package emacs. (Tue, 11 Jun 2019 14:52:01 GMT) Full text and rfc822 format available.

Message #9 received at 36166 <at> debbugs.gnu.org (full text, mbox):

From: Robert Pluim <rpluim <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 36166 <at> debbugs.gnu.org
Subject: Re: bug#36166: 27.0.50;
 Crash visiting HELLO when fringe-mode is disabled
Date: Tue, 11 Jun 2019 16:51:31 +0200
>>>>> On Tue, 11 Jun 2019 17:26:57 +0300, Eli Zaretskii <eliz <at> gnu.org> said:
    Eli> This appears to be NS-specific: the NS version of the
    Eli> compute_glyph_string_overhangs method is very different from the X and
    Eli> w32 versions, and lacks some safety devices.  (I did try the recipe on
    Eli> w32, and didn't see any crashes.)

w32 and X both check s->cmp, at least (although even then they check
slightly different conditions), and they also handle COMPOSITE_GLYPH
differently.

Itʼs easy enough to chuck in a check for font being NULL, but that
feels like the wrong solution (and I donʼt know this code at all).

Robert




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#36166; Package emacs. (Tue, 11 Jun 2019 15:01:02 GMT) Full text and rfc822 format available.

Message #12 received at 36166 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Robert Pluim <rpluim <at> gmail.com>
Cc: 36166 <at> debbugs.gnu.org
Subject: Re: bug#36166: 27.0.50;
 Crash visiting HELLO when fringe-mode is disabled
Date: Tue, 11 Jun 2019 17:59:54 +0300
> From: Robert Pluim <rpluim <at> gmail.com>
> Cc: 36166 <at> debbugs.gnu.org
> Date: Tue, 11 Jun 2019 16:51:31 +0200
> 
> w32 and X both check s->cmp, at least (although even then they check
> slightly different conditions), and they also handle COMPOSITE_GLYPH
> differently.
> 
> Itʼs easy enough to chuck in a check for font being NULL, but that
> feels like the wrong solution (and I donʼt know this code at all).

I think the important part is the test of s->font_not_found_p.  Can
you see whether it's zero in the crash case?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#36166; Package emacs. (Tue, 11 Jun 2019 15:18:01 GMT) Full text and rfc822 format available.

Message #15 received at 36166 <at> debbugs.gnu.org (full text, mbox):

From: Robert Pluim <rpluim <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 36166 <at> debbugs.gnu.org
Subject: Re: bug#36166: 27.0.50;
 Crash visiting HELLO when fringe-mode is disabled
Date: Tue, 11 Jun 2019 17:17:40 +0200
>>>>> On Tue, 11 Jun 2019 17:59:54 +0300, Eli Zaretskii <eliz <at> gnu.org> said:

    >> From: Robert Pluim <rpluim <at> gmail.com>
    >> Cc: 36166 <at> debbugs.gnu.org
    >> Date: Tue, 11 Jun 2019 16:51:31 +0200
    >> 
    >> w32 and X both check s->cmp, at least (although even then they check
    >> slightly different conditions), and they also handle COMPOSITE_GLYPH
    >> differently.
    >> 
    >> Itʼs easy enough to chuck in a check for font being NULL, but that
    >> feels like the wrong solution (and I donʼt know this code at all).

    Eli> I think the important part is the test of s->font_not_found_p.  Can
    Eli> you see whether it's zero in the crash case?

Yes, itʼs 0.

Robert




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#36166; Package emacs. (Tue, 11 Jun 2019 15:27:02 GMT) Full text and rfc822 format available.

Message #18 received at 36166 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Robert Pluim <rpluim <at> gmail.com>
Cc: 36166 <at> debbugs.gnu.org
Subject: Re: bug#36166: 27.0.50;
 Crash visiting HELLO when fringe-mode is disabled
Date: Tue, 11 Jun 2019 18:26:31 +0300
> From: Robert Pluim <rpluim <at> gmail.com>
> Cc: 36166 <at> debbugs.gnu.org
> Date: Tue, 11 Jun 2019 17:17:40 +0200
> 
>     Eli> I think the important part is the test of s->font_not_found_p.  Can
>     Eli> you see whether it's zero in the crash case?
> 
> Yes, itʼs 0.

Thanks.  So I think this:

      if (EQ (font->driver->type, Qns))

should be amended like this:

      if (!s->font_not_found_p && EQ (font->driver->type, Qns))

But I'd love to hear Alan's opinion on this.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#36166; Package emacs. (Tue, 11 Jun 2019 15:33:01 GMT) Full text and rfc822 format available.

Message #21 received at 36166 <at> debbugs.gnu.org (full text, mbox):

From: Robert Pluim <rpluim <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 36166 <at> debbugs.gnu.org
Subject: Re: bug#36166: 27.0.50;
 Crash visiting HELLO when fringe-mode is disabled
Date: Tue, 11 Jun 2019 17:32:50 +0200
>>>>> On Tue, 11 Jun 2019 18:26:31 +0300, Eli Zaretskii <eliz <at> gnu.org> said:

    >> From: Robert Pluim <rpluim <at> gmail.com>
    >> Cc: 36166 <at> debbugs.gnu.org
    >> Date: Tue, 11 Jun 2019 17:17:40 +0200
    >> 
    Eli> I think the important part is the test of s->font_not_found_p.  Can
    Eli> you see whether it's zero in the crash case?
    >> 
    >> Yes, itʼs 0.

    Eli> Thanks.  So I think this:

    Eli>       if (EQ (font->driver->type, Qns))

    Eli> should be amended like this:

    Eli>       if (!s->font_not_found_p && EQ (font->driver->type, Qns))

Are you sure? if font_not_found_p == 0, then this condition will be
true, and font == NULL here, so we get a crash.

Robert




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#36166; Package emacs. (Tue, 11 Jun 2019 15:55:01 GMT) Full text and rfc822 format available.

Message #24 received at 36166 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Robert Pluim <rpluim <at> gmail.com>
Cc: 36166 <at> debbugs.gnu.org
Subject: Re: bug#36166: 27.0.50;
 Crash visiting HELLO when fringe-mode is disabled
Date: Tue, 11 Jun 2019 18:53:52 +0300
> From: Robert Pluim <rpluim <at> gmail.com>
> Cc: 36166 <at> debbugs.gnu.org
> Date: Tue, 11 Jun 2019 17:32:50 +0200
> 
>     Eli> I think the important part is the test of s->font_not_found_p.  Can
>     Eli> you see whether it's zero in the crash case?
>     >> 
>     >> Yes, itʼs 0.
> 
>     Eli> Thanks.  So I think this:
> 
>     Eli>       if (EQ (font->driver->type, Qns))
> 
>     Eli> should be amended like this:
> 
>     Eli>       if (!s->font_not_found_p && EQ (font->driver->type, Qns))
> 
> Are you sure? if font_not_found_p == 0, then this condition will be
> true, and font == NULL here, so we get a crash.

Sorry, I've misinterpreted your finding.  It actually means that the
font_not_found_p flag is not working in this case.

So now I _really_ want to hear Alan's opinion on this.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#36166; Package emacs. (Sat, 29 Jan 2022 14:53:02 GMT) Full text and rfc822 format available.

Message #27 received at 36166 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Robert Pluim <rpluim <at> gmail.com>, Alan Third <alan <at> idiocy.org>,
 36166 <at> debbugs.gnu.org
Subject: Re: bug#36166: 27.0.50; Crash visiting HELLO when fringe-mode is
 disabled
Date: Sat, 29 Jan 2022 15:52:46 +0100
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Are you sure? if font_not_found_p == 0, then this condition will be
>> true, and font == NULL here, so we get a crash.
>
> Sorry, I've misinterpreted your finding.  It actually means that the
> font_not_found_p flag is not working in this case.
>
> So now I _really_ want to hear Alan's opinion on this.

This was two years ago -- Robert, are you still seeing this issue on the
trunk?

(I've added Alan to the CCs.)

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#36166; Package emacs. (Sun, 30 Jan 2022 15:02:01 GMT) Full text and rfc822 format available.

Message #30 received at 36166 <at> debbugs.gnu.org (full text, mbox):

From: Robert Pluim <rpluim <at> gmail.com>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: Eli Zaretskii <eliz <at> gnu.org>, Alan Third <alan <at> idiocy.org>,
 36166 <at> debbugs.gnu.org
Subject: Re: bug#36166: 27.0.50; Crash visiting HELLO when fringe-mode is
 disabled
Date: Sun, 30 Jan 2022 16:01:11 +0100
>>>>> On Sat, 29 Jan 2022 15:52:46 +0100, Lars Ingebrigtsen <larsi <at> gnus.org> said:

    Lars> Eli Zaretskii <eliz <at> gnu.org> writes:
    >>> Are you sure? if font_not_found_p == 0, then this condition will be
    >>> true, and font == NULL here, so we get a crash.
    >> 
    >> Sorry, I've misinterpreted your finding.  It actually means that the
    >> font_not_found_p flag is not working in this case.
    >> 
    >> So now I _really_ want to hear Alan's opinion on this.

    Lars> This was two years ago -- Robert, are you still seeing this issue on the
    Lars> trunk?

No, it doesnʼt crash with master. I guess we can close this.

Robert
-- 




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#36166; Package emacs. (Sun, 30 Jan 2022 16:11:01 GMT) Full text and rfc822 format available.

Message #33 received at 36166 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Robert Pluim <rpluim <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, Alan Third <alan <at> idiocy.org>,
 36166 <at> debbugs.gnu.org
Subject: Re: bug#36166: 27.0.50; Crash visiting HELLO when fringe-mode is
 disabled
Date: Sun, 30 Jan 2022 17:09:51 +0100
Robert Pluim <rpluim <at> gmail.com> writes:

> No, it doesnʼt crash with master. I guess we can close this.

Thanks for checking; closing the bug, then.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




bug closed, send any further explanations to 36166 <at> debbugs.gnu.org and Robert Pluim <rpluim <at> gmail.com> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sun, 30 Jan 2022 16:11:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 28 Feb 2022 12:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 115 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.