I compiled libXfont-1.1.0 with your patch and then xfs-1.0.2 (the
X Font Sever) against that.  Both are also against freetype-2.2.1.

I did these via the gentoo ebuilds (hacking the libXfont ebuild to
add your patch), so I'll have to recompile to get better debugging,
but running the xfs under gdb, and using:

 fslsfonts -l -m -u -server unix/:7100

I was able to segv xfs.  Gdb reports this:

,----(gdb xfs; run -nodaemon)
| Program received signal SIGSEGV, Segmentation fault.
| 0xb7ebedea in FT_Do_SBit_Metrics () from /usr/lib/libXfont.so.1
| (gdb) where
| #0  0xb7ebedea in FT_Do_SBit_Metrics () from /usr/lib/libXfont.so.1
| #1  0xb7ec0018 in FreeTypeRasteriseGlyph () from /usr/lib/libXfont.so.1
| #2  0xb7ec0505 in FreeTypeInstanceGetGlyph () from /usr/lib/libXfont.so.1
| #3  0xb7ec3995 in FreeTypeLoadXFont () from /usr/lib/libXfont.so.1
| #4  0xb7ec65e5 in FreeTypeGetInfoScalable () from /usr/lib/libXfont.so.1
| #5  0xb7ebc6b2 in FontFileListNextFontWithInfo () from /usr/lib/libXfont.so.1
| #6  0x080517cf in do_list_fonts_with_info ()
| #7  0x08051f7a in StartListFontsWithInfo ()
| #8  0x0804dd3e in ProcListFontsWithXInfo ()
| #9  0x0804e5c4 in Dispatch ()
| #10 0x080524fc in main ()
`----

FT_Do_SBit_Metrics looks like this in your patch:

,----(from ftfuncs.c)
| FT_Do_SBit_Metrics( FT_Face ft_face, FT_Size ft_size, FT_ULong strike_index,
|                     FT_UShort glyph_index, FT_Glyph_Metrics *metrics_return,
|                     int *sbitchk_incomplete_but_exist )
| {
| #if 1
|     if ( strike_index != 0xFFFFU )
|     {
|       FT_Error         error;
|       FT_Bitmap_Size*  sz = &ft_face->available_sizes[strike_index];
| 
|       error = FT_Set_Pixel_Sizes( ft_face, sz->x_ppem/64, sz->y_ppem/64 );
|       if ( !error )
|       {
|         error = FT_Load_Glyph( ft_face, glyph_index, FT_LOAD_SBITS_ONLY );
|         if ( !error )
|         {
|           if ( metrics_return != NULL )
|             *metrics_return = ft_face->glyph->metrics;
| 
|           return 0;
|         }
|       }
|     }
|     return -1;
| #endif
| }
`----

I'm re-compiling now with -ggdb.

-JimC


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

Reply via email to