如果使用了 xmlValidateDocument() 函数,则使用 /usr/lib/libxml2.so.2 库的应用程序可能会因信息转储而出现间断性失败。 此问题是由已经过 xmlValidateDocument() 函数验证的文档的库中的堆栈溢出所致。
只有针对在 Solaris 9 4/03 发行版之前引入的 libxml2 发行版编译代码时才会遇到此问题。 编译后,代码将在以下发行版之一上执行:
Solaris 9 4/03
Solaris 9 8/03
Solaris 9 12/03
解决方法: 对所有 Solaris 9 发行版应用以下修补程序:
对于 SPARC 系统,应用修补程序 114014-07。
对于 x86 系统,应用修补程序 114015-07。
如果使用了 libxml2.so 功能测试宏,则需要对使用 Solaris 9 4/03、Solaris 9 8/03 或 Solaris 9 12/03 发行版的系统上采用 libxml2.so 编译的应用程序进行重新编译。 之所以需要进行重新编译,是因为随 Solaris 软件提供的 libxml2.so 的版本已经由于二进制不兼容性而恢复到 2.4.23。 这种二进制不兼容性曾出现在 libxml2 的 2.5.4 版本中。