![字体配置错误导致 Skype 中出现 SEGFAULT](https://linux22.com/image/122131/%E5%AD%97%E4%BD%93%E9%85%8D%E7%BD%AE%E9%94%99%E8%AF%AF%E5%AF%BC%E8%87%B4%20Skype%20%E4%B8%AD%E5%87%BA%E7%8E%B0%20SEGFAULT.png)
有一天,在 openSUSE Tumbleweed 中运行旧版 4.3 Skype 时意外出现错误:
> skype
Fontconfig error: "/etc/fonts/conf.d/10-hinting-slight.conf",
line 13: mismatched tag
Segmentation fault (core dumped)
以前一切都工作得很好。可能是一些操作系统更新或其他什么。
gdb skype
输出:
backtrace:
Program received signal SIGSEGV, Segmentation fault.
0xf358c2c1 in ?? () from /usr/lib/libexpat.so.1
(gdb) backtrace
#0 0xf358c2c1 in ?? () from /usr/lib/libexpat.so.1
#1 0xf3572617 in ?? () from /usr/lib/libexpat.so.1
#2 0xf3573850 in ?? () from /usr/lib/libexpat.so.1
#3 0xf3574ce3 in ?? () from /usr/lib/libexpat.so.1
#4 0xf3576398 in ?? () from /usr/lib/libexpat.so.1
#5 0xf357abdb in XML_ParseBuffer () from /usr/lib/libexpat.so.1
#6 0xf3d42b16 in ?? () from /usr/lib/libfontconfig.so.1
#7 0xf3d43039 in FcConfigParseAndLoad () from /usr/lib/libfontconfig.so.1
#8 0xf3d430ce in FcConfigParseAndLoad () from /usr/lib/libfontconfig.so.1
#9 0xf3d43260 in ?? () from /usr/lib/libfontconfig.so.1
#10 0xf35723f2 in ?? () from /usr/lib/libexpat.so.1
#11 0xf3573850 in ?? () from /usr/lib/libexpat.so.1
#12 0xf3574ce3 in ?? () from /usr/lib/libexpat.so.1
#13 0xf3576398 in ?? () from /usr/lib/libexpat.so.1
#14 0xf357abdb in XML_ParseBuffer () from /usr/lib/libexpat.so.1
#15 0xf3d42b16 in ?? () from /usr/lib/libfontconfig.so.1
#16 0xf3d43039 in FcConfigParseAndLoad () from /usr/lib/libfontconfig.so.1
#17 0xf3d3544c in ?? () from /usr/lib/libfontconfig.so.1
#18 0xf3d356cd in ?? () from /usr/lib/libfontconfig.so.1
#19 0xf3d3570a in FcInitLoadConfigAndFonts () from /usr/lib/libfontconfig.so.1
#20 0xf3d284c6 in ?? () from /usr/lib/libfontconfig.so.1
#21 0xf3d284f8 in ?? () from /usr/lib/libfontconfig.so.1
#22 0xf51dbb9b in ?? () from /usr/lib/libQtGui.so.4
#23 0xf51514da in QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) () from /usr/lib/libQtGui.so.4
#24 0xf51517c0 in QApplication::QApplication(int&, char**, int) () from /usr/lib/libQtGui.so.4
#25 0x56a71a8a in ?? ()
#26 0x56a71864 in ?? ()
#27 0x5681246f in ?? ()
#28 0xf47077b3 in __libc_start_main () from /lib/libc.so.6
#29 0x5681fe8d in ?? ()
删除/etc/fonts/conf.d/10-hinting-slight.conf
会导致另一个(下一个).conf
文件等中出现错误和崩溃。 libexpat1 - 是一个 XML 解析器工具包。有办法修复吗?
PS 现在删除这些.conf
文件时出错,得到另一个 SEGFAULT:
(gdb) backtrace
#0 0xf4775220 in tcache_get () from /lib/libc.so.6
#1 0xf3d4d922 in ?? () from /usr/lib/libfontconfig.so.1
#2 0xf3d4da3f in FcStrSetAdd () from /usr/lib/libfontconfig.so.1
#3 0xf3d4fcb0 in FcConfigParseAndLoad () from /usr/lib/libfontconfig.so.1
#4 0xf3d500ce in FcConfigParseAndLoad () from /usr/lib/libfontconfig.so.1
#5 0xf3d50260 in ?? () from /usr/lib/libfontconfig.so.1
#6 0xf35892bc in ?? () from /usr/lib/libexpat.so.1
#7 0xf3589ec0 in ?? () from /usr/lib/libexpat.so.1
#8 0xf3587f63 in ?? () from /usr/lib/libexpat.so.1
#9 0xf3588abc in ?? () from /usr/lib/libexpat.so.1
#10 0xf358c2eb in XML_ParseBuffer () from /usr/lib/libexpat.so.1
#11 0xf3d4fb16 in ?? () from /usr/lib/libfontconfig.so.1
#12 0xf3d50039 in FcConfigParseAndLoad () from /usr/lib/libfontconfig.so.1
#13 0xf3d4244c in ?? () from /usr/lib/libfontconfig.so.1
#14 0xf3d426cd in ?? () from /usr/lib/libfontconfig.so.1
#15 0xf3d4270a in FcInitLoadConfigAndFonts () from /usr/lib/libfontconfig.so.1
#16 0xf3d354c6 in ?? () from /usr/lib/libfontconfig.so.1
#17 0xf3d354f8 in ?? () from /usr/lib/libfontconfig.so.1
#18 0xf51e8b9b in ?? () from /usr/lib/libQtGui.so.4
#19 0xf515e4da in QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) () from /usr/lib/libQtGui.so.4
#20 0xf515e7c0 in QApplication::QApplication(int&, char**, int) () from /usr/lib/libQtGui.so.4
#21 0x56ab2a8a in ?? ()
#22 0x56ab2864 in ?? ()
#23 0x5685346f in ?? ()
#24 0xf47147b3 in __libc_start_main () from /lib/libc.so.6
#25 0x56860e8d in ?? ()