Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Invalid
-
2.7.0, 2.8.0, 3.0.0, 3.0.1
-
None
-
None
-
$uname -a
SunOS xsol-qa1 5.10 Generic_137138-09 i86pc i386 i86pc
$CC -V
CC: Sun C++ 5.7 2005/01/07
Description
This issue just happens on Solaris 10 x64. There is no problem on other platforms, such as Solaris 10 x86 (32-bit), AIX (both 32 and 64), HP-UX (both PA-RISC and IA64), Linux x86 etc.
I wrote a xerces-c sax application on Solaris 10 x64. The class "MXmlHandler" was the xml handler what was inherited from "DefaultHandeler".
The following is the compiler and linker flags.
Compiler flags: -mt -xarch=amd64 -g -I/usr/app/xercesc/2.8/include
Linker flags: -mt -xarch=amd64 -L/usr/app/xercesc/2.8/lib -lxerces-c
At the begining of the method
void startElement( const XMLCh* const uri,
const XMLCh* const localname,
const XMLCh* const qname,
const Attributes& attributes);
the value of the parameter "qname" was wrong. For example the qname should be a string like "schemaName", but it was a recognised string. This is the behavior in RELEASE libraries. In the DEBUG mode, the application crashed in xerces-c libraries.
The following is traceback.
=>[1] xercesc_2_8::XMLAttr::getValue(this = 0x18), line 486 in "XMLAttr.hpp"
[2] xercesc_2_8::VecAttrListImpl::getValue(this = 0x4cc3e8, index = 1U), line 86 in "VecAttrListImpl.cpp"
[3] 0xfffffd7ffeab6546(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ffeab6545
[4] xercesc_2_8::SAXParser::startElement(this = 0x4cc3a8, elemDecl = CLASS, elemURLId = 1U, elemPrefix = 0xfffffd7ffe1bb3b0, attrList = CLASS, attrCount = 2U, isEmpty = false, isRoot = true), line 971 in "SAXParser.cpp"
[5] xercesc_2_8::IGXMLScanner::scanStartTag(this = 0x4cd6b8, gotData = true), line 2101 in "IGXMLScanner.cpp"
[6] xercesc_2_8::IGXMLScanner::scanContent(this = 0x4cd6b8), line 899 in "IGXMLScanner.cpp"
[7] xercesc_2_8::IGXMLScanner::scanDocument(this = 0x4cd6b8, src = CLASS), line 215 in "IGXMLScanner.cpp"
[8] xercesc_2_8::XMLScanner::scanDocument(this = 0x4cd6b8, systemId = 0x4d4530), line 460 in "XMLScanner.cpp"
[9] xercesc_2_8::XMLScanner::scanDocument(this = 0x4cd6b8, systemId = 0x4c7f68 "../dats/adr3xml.dat"), line 468 in "XMLScanner.cpp"
[10] xercesc_2_8::SAXParser::parse(this = 0x4cc3a8, systemId = 0x4c7f68 "../dats/adr3xml.dat"), line 587 in "SAXParser.cpp"