In XeTeXFontInst_FC.cpp (line 54), in the call to FT_Load_Sfnt_Table in
XeTeXFontInst_FC::readTable a pointer to le_uint32 is coerced to a
pointer to FT_ULong. <br>
<br>
The freetype documentation says that FT_ULong is a typedef for unsigned
long, which on an amd64 happens to be 64 bits wide. The mistake is FT's
since an truetype specification's ulong is 32 bits wide, but anyway the
discrepancy leads to a segfault.<br>
<br>
Passing FT_Load_Sfnt_Table a pointer to a temporary FT_ULong variable
and later assigning the variable to the le_uint32 makes the problem go
away, but I am not sure if this is the only place where we have a
situation like this.<br>
<br>
Jyotirmoy<br>