diff --git a/src/xercesc/dom/impl/DOMLSSerializerImpl.cpp b/src/xercesc/dom/impl/DOMLSSerializerImpl.cpp index 8bd591dfd4f7acc0d83d458a3732d05611c4ce13..6524febb818fe39ebcc42849494968cd0eec83cd 100644 --- a/src/xercesc/dom/impl/DOMLSSerializerImpl.cpp +++ b/src/xercesc/dom/impl/DOMLSSerializerImpl.cpp @@ -1742,10 +1742,15 @@ bool DOMLSSerializerImpl::isNamespaceBindingActive(const XMLCh* prefix, const XM void DOMLSSerializerImpl::ensureValidString(const DOMNode* nodeToWrite, const XMLCh* string) { // XERCESC-1854: prevent illegal characters from being written - XMLSize_t count=XMLString::stringLen(string); - for(XMLSize_t i=0;i<count;i++) - if((fIsXml11 && !XMLChar1_1::isXMLChar(string[i])) || (!fIsXml11 && !XMLChar1_0::isXMLChar(string[i]))) + if(string==0) + return; + const XMLCh* cursor=string; + while(*cursor!=0) + { + if((fIsXml11 && !XMLChar1_1::isXMLChar(*cursor)) || (!fIsXml11 && !XMLChar1_0::isXMLChar(*cursor))) reportError(nodeToWrite, DOMError::DOM_SEVERITY_FATAL_ERROR, XMLDOMMsg::INVALID_CHARACTER_ERR); + cursor++; + } } XERCES_CPP_NAMESPACE_END