From bb412625b32c2c7ed584036b307517def4c78312 Mon Sep 17 00:00:00 2001 From: Neil Graham <neilg@apache.org> Date: Sun, 31 Aug 2003 18:10:08 +0000 Subject: [PATCH] Fix for bug 21990. Thanks to Shin'ya Morino. git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@175181 13f79535-47bb-0310-9956-ffa450edef68 --- src/xercesc/util/Transcoders/ICU/ICUTransService.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp b/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp index 63f0fe45f..9b3b8be16 100644 --- a/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp +++ b/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp @@ -907,7 +907,7 @@ char* ICULCPTranscoder::transcode(const XMLCh* const toTranscode) } // If targetLen is not enough then buffer overflow might occur - if (err == U_BUFFER_OVERFLOW_ERROR) + if ((err == U_BUFFER_OVERFLOW_ERROR) || (err == U_STRING_NOT_TERMINATED_WARNING)) { // // Reset the error, delete the old buffer, allocate a new one, @@ -936,8 +936,6 @@ char* ICULCPTranscoder::transcode(const XMLCh* const toTranscode) return 0; } - // Cap it off and return - retBuf[targetCap] = 0; return retBuf; } @@ -1010,7 +1008,7 @@ char* ICULCPTranscoder::transcode(const XMLCh* const toTranscode, } // If targetLen is not enough then buffer overflow might occur - if (err == U_BUFFER_OVERFLOW_ERROR) + if ((err == U_BUFFER_OVERFLOW_ERROR) || (err == U_STRING_NOT_TERMINATED_WARNING)) { // // Reset the error, delete the old buffer, allocate a new one, @@ -1039,8 +1037,6 @@ char* ICULCPTranscoder::transcode(const XMLCh* const toTranscode, return 0; } - // Cap it off and return - retBuf[targetCap] = 0; return retBuf; } -- GitLab