On Mon, Mar 06, 2006 at 01:01:28AM -0800, Steve Langasek wrote:
> On Sun, Mar 05, 2006 at 11:26:52PM -0800, Steve Langasek wrote:
> > - gimp segfaults in pango_fc_font_create_metrics_for_context(); this version
> >   of pango is built against freetype 2.1.10, but it's pango 1.10.3 and that
> >   was reported to be new enough that it no longer uses the freetype internal
> >   APIs?

> Follow-up on this one: the segfault happens even if libfontconfig1 and
> libpango1.0-0 are both rebuilt against freetype 2.2rc4 (using the fontconfig
> 2.3.2 patch from 
> http://www.freetype.org/freetype2/patches/rogue-patches.html).
> Score!

> Still digging into it, but it evidently isn't just an issue of ABI skew
> between 2.1.7 and 2.2rc4.

Aaaaaaand here we go with a patch.  This proved to be an issue with
accidentally requesting allocation of a zero-element array in sfnt/ttmtx.c;
given that there is code directly above this point that explicitly handles
the case of an empty set of short metrics, I can only assume this was an
oversight, which is corrected by the attached diff.

Turns out this was the problem with both gnustep and gimp on my system, as
both were trying to load the same font (BitStream Vera) with metrics that
triggered this problem.  So at this point, 2.2rc4 looks pretty good in terms
of compatibility with both Debian sarge (2.1.7) and etch (2.1.10).

Unfortunately, I do have to report that there seems to be a substantial
difference in the rendering of fonts relative to 2.1.7/2.1.10, with the
default fonts (i.e., BitStream Vera) now being rendered much wider than
before.  I haven't looked at them side-by-side yet to figure out exactly
what the difference is; perhaps this is an intentional change, but to me it
looks like a regression...

Cheers,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
[EMAIL PROTECTED]                                   http://www.debian.org/
Index: src/sfnt/ttmtx.c
===================================================================
RCS file: /sources/freetype/freetype2/src/sfnt/ttmtx.c,v
retrieving revision 1.11
diff -u -r1.11 ttmtx.c
--- src/sfnt/ttmtx.c    22 Feb 2006 08:23:35 -0000      1.11
+++ src/sfnt/ttmtx.c    6 Mar 2006 11:27:30 -0000
@@ -169,7 +169,7 @@
     }
 
     if ( FT_QNEW_ARRAY( *longs,  num_longs  ) ||
-         FT_QNEW_ARRAY( *shorts, num_shorts ) )
+         (num_shorts > 0 && FT_QNEW_ARRAY( *shorts, num_shorts ) ) )
       goto Fail;
 
     if ( FT_FRAME_ENTER( table_len ) )

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel

Reply via email to