Subject: Re: bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty

From: Eli Zaretskii <[email-masked]>
Date: Sat, 14 Nov 2020 14:14:11 +0200

> From: Amin Bandali <[email-masked]>
> Cc: Eric Abrahamsen <[email-masked]>,  [email-masked]
> Date: Fri, 13 Nov 2020 00:20:16 -0500
> 
> >> With "emacs -Q" there are no records to search or display, so I assumed
> >> it must be the header-access functions causing the problem. But I wrote
> >> a function that does most of what EBDB does, without actually using
> >> EBDB, and it caused no segfault, so I don't know what's going on there,
> >> sorry.
> >
> > Thank you for your efforts.
> 
> I, too, would like to say thank you, both to Eli and Eric, for your
> efforts and looking into this.  I just sent information to Eli off-list
> for accessing a test account I set up on a server of mine for debugging
> this issue.

FTR, it is very easy to reproduce the problem, no need for Gnus or
EBDB.  Here's the recipe:

  emacs -Q -nw
  C-x 3
  C-x b foo

Now type some R2L character.  For example, turn on the Arabic input
method and press 'a'.  You will see that the character does not appear
on display.  Basically, on a TTY frame, the first character of a R2L
line in a window that is not the rightmost one is not shown: it is
overwritten by the vertical-border character '|' we display between
the two adjacent windows.  This doesn't crash as long as the
overwritten glyph is of a character, but in the case in point that
glyph came from a composition, and then all hell breaks loose...

This is a regression introduced in Emacs 27.1, by the code that
supports display-fill-column-indicator-mode.  I have now fixed it on
the emacs-27 branch.

Many thanks to Amin for giving me access to a system where this could
be easily reproduced.