You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by "Alberto Massari (JIRA)" <xe...@xml.apache.org> on 2007/02/23 13:41:06 UTC

[jira] Resolved: (XERCESC-1679) xercesc_2_7::XMLUTF8Transcoder::transcodeFrom has a Conditional jump or move depends on uninitialised value.

     [ https://issues.apache.org/jira/browse/XERCESC-1679?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alberto Massari resolved XERCESC-1679.
--------------------------------------

    Resolution: Duplicate

Duplicate of XERCESC-1555

> 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: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org