xercesc_2_7::XMLUTF8Transcoder::transcodeFrom has a Conditional jump or move
depends on uninitialised value.
------------------------------------------------------------------------------------------------------------
Key: XERCESC-1679
URL: https://issues.apache.org/jira/browse/XERCESC-1679
Project: Xerces-C++
Issue Type: Bug
Components: Utilities
Affects Versions: 2.7.0
Environment: Linux rhes-4 i686 gcc-3-2-3 32 bit
Reporter: Philippe Forest
The problem is that the value of the poiter get checked before the check to see
if you have passed the end of the input buffer.
in the file :XMLUTF8Transcoder.cpp on position 157.
current code:
} while (*srcPtr <= 127 && // <- this can cause a crash if
this memory is not your.
srcPtr != srcEnd &&
outPtr != outEnd );
should be:
} while (
srcPtr != srcEnd && // first check the end
*srcPtr <= 127 && // then the content
outPtr != outEnd );
See valrind log:
Thanks Let me know if you need more details.
Phil.
==25072== Conditional jump or move depends on uninitialised value(s)
==25072== at 0x5170D2A:
xercesc_2_7::XMLUTF8Transcoder::transcodeFrom(unsigned char const*, unsigned,
unsigned short*, unsigned, unsigned&, unsigned char*)
(XMLUTF8Transcoder.cpp:157)
==25072== by 0x5158D2F: xercesc_2_7::XMLReader::xcodeMoreChars(unsigned
short*, unsigned char*, unsigned) (XMLReader.cpp:1707)
==25072== by 0x5156FC9: xercesc_2_7::XMLReader::refreshCharBuffer()
(XMLReader.cpp:498)
==25072== by 0x50BB3A7: xercesc_2_7::XMLReader::peekNextChar(unsigned
short&) (XMLReader.hpp:759)
==25072== by 0x50B933A: xercesc_2_7::ReaderMgr::peekNextChar()
(ReaderMgr.cpp:163)
==25072== by 0x515DFA6: xercesc_2_7::XMLScanner::scanProlog()
(XMLScanner.cpp:1237)
==25072== by 0x5085CC6:
xercesc_2_7::IGXMLScanner::scanDocument(xercesc_2_7::InputSource const&)
(IGXMLScanner.cpp:202)
==25072== by 0x50CC048:
xercesc_2_7::SAX2XMLReaderImpl::parse(xercesc_2_7::InputSource const&)
(SAX2XMLReaderImpl.cpp:396)
...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]