crash due to weird freetype font in gdiplus/sse

Marcus Meissner meissner at suse.de
Fri Nov 10 11:10:53 CST 2017


Hi,

we saw this during wineconf
http://test.winehq.org/data/010119085b4cee3d7edbad2c5a46d35daa95000d/linux_mm-thinkpad-64/gdiplus:font.html

the actual instruction is:
	  cvttsd2si $xmm0, $eax

which receives a FPE trap as the content of $xmm0 does not fit into
$eax.

http://www.jaist.ac.jp/iscenter-new/mpc/altix/altixdata/opt/intel/vtune/doc/users_guide/mergedProjects/analyzer_ec/mergedProjects/reference_olh/mergedProjects/instructions/instruct32_hh/vc67.htm

This means someone switched on FPE traps for XMM instructions in $CR4
register, which I would expect freetype2 the prime candidate if it is
not Wine itself.

Debugging shows that capEmHeight and capXHeight are both values < 0.

long story short, in the loader we get these values:
fixme:font:get_outline_text_metrics L"Goha-Tibeb Zemen" sCapHeight=-32768
fixme:font:get_outline_text_metrics L"Goha-Tibeb Zemen" sxHeight=-32768

The documentation does not give 0x8000 a specific meaning in the OS2
table.

I can provide this font if needed for debugging.

Ciao, Marcus



More information about the wine-devel mailing list