GNU bug report logs -
#19435
SIGSEGV in PSEUDOVECTOR_TYPEP when using find-file on a RTL filename
Previous Next
Reported by: Ivan Shmakov <ivan <at> siamics.net>
Date: Wed, 24 Dec 2014 07:26:02 UTC
Severity: normal
Fixed in version 24.5
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #8 received at 19435 <at> debbugs.gnu.org (full text, mbox):
On 12/24/2014 10:25 AM, Ivan Shmakov wrote:
> As of 36c43e95de5e (2014-12-18 16:44:11 +0000), Emacs segfaults
> when trying to use find-file on "\u062f\u0646\u06cc" (encoded as
> a ASCII-safe Emacs string literal here.)
>
> Strangely enough, $ emacs -Q handles that filename just fine.
>
> The backtrace is MIMEd.
Reproduced. This seems to be a redisplay glitch since composition_compute_stop_pos
makes an attempt to move CMP_IT beyond STRING's boundaries, as handled by the
following extra eassert:
diff --git a/src/composite.c b/src/composite.c
index 8982c90..fa60cc0 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -1005,7 +1005,10 @@ composition_compute_stop_pos (struct composition_it *cmp_it, ptrdiff_t charpos,
while (charpos < endpos)
{
if (STRINGP (string))
- FETCH_STRING_CHAR_ADVANCE (c, string, charpos, bytepos);
+ {
+ eassert (charpos < SCHARS (string) && bytepos < SBYTES (string));
+ FETCH_STRING_CHAR_ADVANCE (c, string, charpos, bytepos);
+ }
else
FETCH_CHAR_ADVANCE (c, charpos, bytepos);
if (c == '\n')
Dmitry
This bug report was last modified 10 years and 225 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.