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

Reply via email to