Message: A new issue has been created in JIRA.
--------------------------------------------------------------------- View the issue: http://issues.apache.org/jira/browse/XERCESC-1224 Here is an overview of the issue: --------------------------------------------------------------------- Key: XERCESC-1224 Summary: IconvGNUTranscoder::transcodeFrom() is incomplete Type: Bug Status: Unassigned Priority: Major Project: Xerces-C++ Components: Utilities Versions: 2.5.0 Assignee: Reporter: Felix Li Created: Thu, 3 Jun 2004 12:57 AM Updated: Thu, 3 Jun 2004 12:57 AM Environment: Linux Description: the snatch in this function: ... for (size_t cnt = 0; cnt < maxChars && srcLen; cnt++) { size_t rc = inconvFrom(startSrc, &srcLen, &orgTarget, uChSize()); if (rc == (size_t)-1) { if(errno != E2BIG || prevSrcLen == srcLen) { if (wBufPtr) getMemoryManager()->deallocate(wBufPtr); ThrowXMLwithMemMgr(TranscodingException, XMLExcepts::Trans_BadSrcSeq, getMemoryManager()); } } ... } ... When an incomplete multibyte sequence is encountered in the input, and the input byte sequence terminates after it, "(size_t)-1" is also returned, but errno is set to EINVAL. This is not an error, no exception should be created. So, I have changed the code as follows, and it worked well. ... for (size_t cnt = 0; cnt < maxChars && srcLen; cnt++) { ... if (rc == (size_t)-1) { if (errno == EINVAL) { //incomplete multibyte sequence break; } if (errno != E2BIG || prevSrcLen == srcLen) { ... } } ... } ... --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
