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

Bug#917034: xterm crashes on certain Unicode characters when font was selected with -fa



On Tue, Jan 01, 2019 at 12:28:38PM -0500, Thomas Dickey wrote:
> On Mon, Dec 31, 2018 at 02:32:58PM -0500, Thomas Dickey wrote:
> > On Mon, Dec 31, 2018 at 06:11:23PM +0100, Alexander Meyer wrote:
> > > * Thomas Dickey <dickey@his.com> [2018-12-31 00:51]:
> > > 
> > > > On Sun, Dec 30, 2018 at 06:26:44PM +0100, Alexander Meyer wrote:
> > > > ...
> > > >> This is the behaviour I get across xterm versions:
> > > >> (everything with libfontconfig1 2.13.1-2)
> > > >> 
> > > >> fonts.conf enabled:
> > > >> 337: works
> > > >> 338: segfault
> > > >> 340: segfault
> > > >> 341: segfault
> > > > 
> > > > Can you make a backtrace for #341, please?
> > > 
> > > Here it is:
> > 
> > thanks.  I added some notes, but have not been able to reproduce the problem.
> 
> Looking at this again, I saw (using XFT_DEBUG=3 and the -report-fonts option)
> that the fallback was using unifont.  Removing that got it to break (I'll
> see whether the bug lies in Xft or fontconfig, at least).

The latter.   Here's a fix for fontconfig that eliminates this particular crash.

--- fontconfig-2.13.1/src/fccfg.c.orig	2019-01-01 17:05:49.000000000 -0500
+++ fontconfig-2.13.1/src/fccfg.c	2019-01-01 18:56:05.547070797 -0500
@@ -978,9 +978,14 @@
     FcValue	v, vl, vr, vle, vre;
     FcMatrix	*m;
     FcChar8     *str;
-    FcOp	op = FC_OP_GET_OP (e->op);
+    FcOp	op;
     FcValuePromotionBuffer buf1, buf2;
 
+    if (e == 0) {
+	op = FcOpNil;
+    } else {
+	op = FC_OP_GET_OP (e->op);
+    }
     switch ((int) op) {
     case FcOpInteger:
 	v.type = FcTypeInteger;

(The bug should be reassigned to the libfontconfig1 package).

-- 
Thomas E. Dickey <dickey@invisible-island.net>
https://invisible-island.net
ftp://ftp.invisible-island.net

Attachment: signature.asc
Description: Digital signature


Reply to: