GNU bug report logs - #9496
24.0.50; Segfault on TAB-only composition

Previous Next

Package: emacs;

Reported by: Johan Bockgård <bojohan <at> gnu.org>

Date: Tue, 13 Sep 2011 20:27:01 UTC

Severity: important

Merged with 9775

Found in versions 24.0.50, 24.0.90

Done: Chong Yidong <cyd <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


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

From: Johan Bockgård <bojohan <at> gnu.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.0.50; Segfault on TAB-only composition
Date: Tue, 13 Sep 2011 22:22:14 +0200
(insert (compose-string "\t"))

Program received signal SIGSEGV, Segmentation fault.
0x00000000004d45d4 in x_set_glyph_string_gc (s=0x7fffffffae80) at xterm.c:1061
1061      PREPARE_FACE_FOR_DISPLAY (s->f, s->face);
(gdb) bt
#0  0x00000000004d45d4 in x_set_glyph_string_gc (s=0x7fffffffae80)
    at xterm.c:1061
#1  x_draw_glyph_string (s=0x7fffffffae80) at xterm.c:2683

This problem is not new, but due to other changes it now makes
`describe-char' (C-u C-x =) crash when executed on a tab character.


2011-09-13  Johan Bockgård  <bojohan <at> gnu.org>

	* xdisp.c (fill_composite_glyph_string): Always set s->face, to
	avoid a crash.


=== modified file 'src/xdisp.c'
--- src/xdisp.c	2011-09-09 01:06:52 +0000
+++ src/xdisp.c	2011-09-11 15:03:56 +0000
@@ -21745,6 +21749,12 @@ fill_composite_glyph_string (struct glyp
     }
   s->cmp_to = i;
 
+  if (s->face == NULL)
+    {
+      s->face = base_face->ascii_face;
+      s->font = s->face->font;
+    }
+
   /* All glyph strings for the same composition has the same width,
      i.e. the width set for the first component of the composition.  */
   s->width = s->first_glyph->pixel_width;





This bug report was last modified 13 years and 171 days ago.

Previous Next


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