DOMDocumentImpl:: getPooledNString(const XMLCh *in, XMLSize_t n) returns 
incorrect string
-----------------------------------------------------------------------------------------

                 Key: XERCESC-1978
                 URL: https://issues.apache.org/jira/browse/XERCESC-1978
             Project: Xerces-C++
          Issue Type: Bug
          Components: DOM
    Affects Versions: 3.1.1
         Environment: Windows x32, but should be everywhere
            Reporter: Rainer Prosi
            Priority: Blocker


the methods returns the original string rather than the substring(n) if the 
substring and original string have the same hash code.
This leeds to corrupt xml files due to prefixes being replaced by the entire 
string:
Original version:
 while (*pspe != 0)
  {
    if (XMLString::equals((*pspe)->fString, in))
      return (*pspe)->fString;
...

Bugfix suggestion:
 //RP 120416 we need to check for length of the returned <=n; else any hash 
matching string longer than n will be accepted --- bad snafu!
    if (XMLString::equalsN((*pspe)->fString, in, n) && XMLString::stringLen( 
(*pspe)->fString)<=n)


Example prefix + attribute name that will fail:
HDM:
HDM:OffsetBack



--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to