Hi All,
Our interpreter receives a page with an attribute that has a very long
value (actually the value is made up of thousands of small words).
Parsing this page results in a stack overflow.
Would anyone know if there is a patch available (on Solaris) that would
guard against stack overflow while processing such a page?
We are currently using: Xerces-C++ Version 2.3.0
The following is a sample of the stack trace:
[1] 0x168c94(0x16d368, 0x137238, 0x48f6c0, 0x1c, 0x1, 0xffffffff), at
0x168c93
[2] 0x168c90(0x0, 0x3fd00088, 0xbdd00000, 0x3fd00088, 0xb,
0xfda00088), at 0x168c8f
[3] xercesc_2_3::RangeToken::match(0x282de8, 0x20, 0xff400224, 0x20,
0x1, 0xdc00), at 0xfe326484
[4] xercesc_2_3::RegularExpression::matchRange(0x5adaf0, 0x27ef18,
0x31caf0, 0xff4002d8, 0x1, 0x0), at 0xfe335c98
[5] xercesc_2_3::RegularExpression::match(0x5adaf0, 0x27ef18,
0x31caf0, 0xc, 0x1, 0xfe309e1c), at 0xfe334aa0
[6] xercesc_2_3::RegularExpression::match(0x5adaf0, 0x27ef18,
0x48f6c0, 0x1c, 0x1, 0xffffffff), at 0xfe334dac
[7] xercesc_2_3::RegularExpression::match(0x5adaf0, 0x27ef18,
0x48f6c0, 0x1c, 0x1, 0xffffffff), at 0xfe334dac
[8] xercesc_2_3::RegularExpression::match(0x5adaf0, 0x27ef18,
0x48f6c0, 0x1c, 0x1, 0xffffffff), at 0xfe334dac
[9] xercesc_2_3::RegularExpression::match(0x5adaf0, 0x27ef18,
0x48f6c0, 0x1c, 0x1, 0xffffffff), at 0xfe334dac
[10] xercesc_2_3::RegularExpression::match(0x5adaf0, 0x27ef18,
0x48f6c0, 0x1c, 0x1, 0xffffffff), at 0xfe334dac
[11] xercesc_2_3::RegularExpression::match(0x5adaf0, 0x27ef18,
0x48f6c0, 0x1c, 0x1, 0xffffffff), at 0xfe334dac
...
<snip>
...
[87320] xercesc_2_3::RegularExpression::match(0x5adaf0, 0x27ef18,
0x27ed18, 0x1c, 0x1, 0xffffffff), at 0xfe334dac
[87321] xercesc_2_3::RegularExpression::match(0x5adaf0, 0x27ef18,
0x27ed18, 0x1c, 0x1, 0xffffffff), at 0xfe334dac
[87322] xercesc_2_3::RegularExpression::match(0x5adaf0, 0x27ef18,
0x27ed18, 0x1c, 0x1, 0xffffffff), at 0xfe334dac
[87323] xercesc_2_3::RegularExpression::match(0x5adaf0, 0x27ef18,
0x27ed18, 0x1c, 0x1, 0xffffffff), at 0xfe334dac
[87324] xercesc_2_3::RegularExpression::matches(0x5adaf0, 0x56ce00,
0x200, 0xffbfeb30, 0x0, 0x0), at 0xfe331740
[87325] xercesc_2_3::AbstractStringValidator::checkContent(0x294470,
0x56ce00, 0x0, 0xfe1bde3c, 0xfe4c992c, 0x0), at 0xfe1be06c
[87326] xercesc_2_3::SchemaValidator::validateAttrValue(0x20e160,
0x479100, 0x56ce00, 0x0, 0x3f8f30, 0x4), at 0xfe37de28
[87327] xercesc_2_3::IGXMLScanner::buildAttList(0x209360, 0x479100,
0x465038, 0x3f8f30, 0x56ce00, 0xfe52c640), at 0xfe2d98a8
[87328] xercesc_2_3::IGXMLScanner::scanStartTagNS(0xc, 0x3f8f30, 0x2,
0x5, 0x20b068, 0xfe4c992c), at 0xfe2d2e28
[87329] xercesc_2_3::IGXMLScanner::scanContent(0x209360, 0x0,
0x3c0000, 0xfe4f6730, 0xfe2e2e40, 0x1), at 0xfe2cb10c
=>[87330] xercesc_2_3::IGXMLScanner::scanDocument(0x209360, 0x0,
0x3feffc0b, 0xfd80fc0b, 0x1, 0xfe4f6730), at 0xfe2c8b38
[87331] xercesc_2_3::SAX2XMLReaderImpl::parse(0x208490, 0xffbff0dc,
0x19b0d, 0x2accf8, 0x0, 0xfe3518e8), at 0xfe349118
Thanks in advance.
Regards,
Russ
|