[jira] [Commented] (XERCESC-2239) When XMLUni::fgDOMWRTSplitCdataSections is true (the default) invalid XML characters are allowed by DOMWriter

2022-09-07 Thread David Leffingwell (Jira)


[ 
https://issues.apache.org/jira/browse/XERCESC-2239?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17601489#comment-17601489
 ] 

David Leffingwell commented on XERCESC-2239:


It looks like ensureValidString() (or something equivalent) is not being done 
for DOMNode::CDATA_SECTION_NODE.

https://github.com/apache/xerces-c/blob/fc1f7d3a41328e978d7f517193367af8966a40f8/src/xercesc/dom/impl/DOMLSSerializerImpl.cpp

> When XMLUni::fgDOMWRTSplitCdataSections is true (the default) invalid XML 
> characters are allowed by DOMWriter
> -
>
> Key: XERCESC-2239
> URL: https://issues.apache.org/jira/browse/XERCESC-2239
> Project: Xerces-C++
>  Issue Type: Bug
>  Components: DOM
>Affects Versions: 3.2.0
>Reporter: David Leffingwell
>Priority: Major
>
> // Create a Document with a CDATA section that contains an invalid XML 
> character (e.g. 0x1b). 
> // This should fail when serializing the Document, but it does not when 
> XMLUni::fgDOMWRTSplitCdataSections is true.
> struct XercesDeleter
> {
> template
> void operator()(T* data) const
> {
> if (data) { data->release(); };
> }
> };
> typedef std::unique_ptr  
>  DOMWriterPtr;
> typedef std::unique_ptr 
> DOMDocumentPtr;
> XMLPlatformUtils::Initialize();
> DOMImplementation* impl = 
> DOMImplementationRegistry::getDOMImplementation(XMLString::transcode("LS"));
>  // Create DOM with a CDATA section
> DOMDocumentPtr document(impl->createDocument());
> DOMElement* element = 
> document->createElementNS(XMLString::transcode("http://schemas.openxmlformats.org/wordprocessingml/2006/main;),
>  XMLString::transcode("w:t"));
> document->appendChild(element);
> DOMCDATASection* codesection = document->createCDATASection(XercesString("c = 
> '';")); // 0x1B is not a valid XML 1.0 character
> element->appendChild(codesection); 
> DOMWriterPtr writer(impl->createLSSerializer());
> writer->writeToString(document.get())



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org
For additional commands, e-mail: c-dev-h...@xerces.apache.org



[jira] [Updated] (XERCESC-2239) When XMLUni::fgDOMWRTSplitCdataSections is true (the default) invalid XML characters are allowed by DOMWriter

2022-09-07 Thread David Leffingwell (Jira)


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

David Leffingwell updated XERCESC-2239:
---
Description: 
// Create a Document with a CDATA section that contains an invalid XML 
character (e.g. 0x1b). 
// This should fail when serializing the Document, but it does not when 
XMLUni::fgDOMWRTSplitCdataSections is true.


struct XercesDeleter
{
template
void operator()(T* data) const
{
if (data) { data->release(); };
}
};

typedef std::unique_ptr   
DOMWriterPtr;
typedef std::unique_ptr 
DOMDocumentPtr;


XMLPlatformUtils::Initialize();

DOMImplementation* impl = 
DOMImplementationRegistry::getDOMImplementation(XMLString::transcode("LS"));

 // Create DOM with a CDATA section
DOMDocumentPtr document(impl->createDocument());

DOMElement* element = 
document->createElementNS(XMLString::transcode("http://schemas.openxmlformats.org/wordprocessingml/2006/main;),
 XMLString::transcode("w:t"));
document->appendChild(element);

DOMCDATASection* codesection = document->createCDATASection(XercesString("c = 
'';")); // 0x1B is not a valid XML 1.0 character
element->appendChild(codesection); 

DOMWriterPtr writer(impl->createLSSerializer());

writer->writeToString(document.get())

  was:
// Create a Document with a CDATA section that contains an invalid XML 
character (e.g. 0x1b). 
// This should fail when serializing the Document, but it does not when 
XMLUni::fgDOMWRTSplitCdataSections is true.


struct XercesDeleter
{
template
void operator()(T* data) const
{
if (data) { data->release(); };
}
};

typedef std::unique_ptr   
DOMWriterPtr;
typedef std::unique_ptr 
DOMDocumentPtr;


XMLPlatformUtils::Initialize();

DOMImplementation* impl = 
DOMImplementationRegistry::getDOMImplementation(XMLString::transcode("LS"));

 // Create DOM with a CDATA section
DOMDocumentPtr document(impl->createDocument());

DOMElement* element = 
document->createElementNS(XMLString::transcode("http://schemas.openxmlformats.org/wordprocessingml/2006/main;),
 XMLString::transcode("w:t"));
document->appendChild(element);

DOMCDATASection* codesection = document->createCDATASection(XercesString(code));
element->appendChild("c = '';"); // 0x1B is not a valid XML 1.0 character

DOMWriterPtr writer(impl->createLSSerializer());

writer->writeToString(document.get())


> When XMLUni::fgDOMWRTSplitCdataSections is true (the default) invalid XML 
> characters are allowed by DOMWriter
> -
>
> Key: XERCESC-2239
> URL: https://issues.apache.org/jira/browse/XERCESC-2239
> Project: Xerces-C++
>  Issue Type: Bug
>  Components: DOM
>Affects Versions: 3.2.0
>Reporter: David Leffingwell
>Priority: Major
>
> // Create a Document with a CDATA section that contains an invalid XML 
> character (e.g. 0x1b). 
> // This should fail when serializing the Document, but it does not when 
> XMLUni::fgDOMWRTSplitCdataSections is true.
> struct XercesDeleter
> {
> template
> void operator()(T* data) const
> {
> if (data) { data->release(); };
> }
> };
> typedef std::unique_ptr  
>  DOMWriterPtr;
> typedef std::unique_ptr 
> DOMDocumentPtr;
> XMLPlatformUtils::Initialize();
> DOMImplementation* impl = 
> DOMImplementationRegistry::getDOMImplementation(XMLString::transcode("LS"));
>  // Create DOM with a CDATA section
> DOMDocumentPtr document(impl->createDocument());
> DOMElement* element = 
> document->createElementNS(XMLString::transcode("http://schemas.openxmlformats.org/wordprocessingml/2006/main;),
>  XMLString::transcode("w:t"));
> document->appendChild(element);
> DOMCDATASection* codesection = document->createCDATASection(XercesString("c = 
> '';")); // 0x1B is not a valid XML 1.0 character
> element->appendChild(codesection); 
> DOMWriterPtr writer(impl->createLSSerializer());
> writer->writeToString(document.get())



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org
For additional commands, e-mail: c-dev-h...@xerces.apache.org



[jira] [Updated] (XERCESC-2239) When XMLUni::fgDOMWRTSplitCdataSections is true (the default) invalid XML characters are allowed by DOMWriter

2022-09-07 Thread David Leffingwell (Jira)


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

David Leffingwell updated XERCESC-2239:
---
Description: 
// Create a Document with a CDATA section that contains an invalid XML 
character (e.g. 0x1b). 
// This should fail when serializing the Document, but it does not when 
XMLUni::fgDOMWRTSplitCdataSections is true.


struct XercesDeleter
{
template
void operator()(T* data) const
{
if (data) { data->release(); };
}
};

typedef std::unique_ptr   
DOMWriterPtr;
typedef std::unique_ptr 
DOMDocumentPtr;


XMLPlatformUtils::Initialize();

DOMImplementation* impl = 
DOMImplementationRegistry::getDOMImplementation(XMLString::transcode("LS"));

 // Create DOM with a CDATA section
DOMDocumentPtr document(impl->createDocument());

DOMElement* element = 
document->createElementNS(XMLString::transcode("http://schemas.openxmlformats.org/wordprocessingml/2006/main;),
 XMLString::transcode("w:t"));
document->appendChild(element);

DOMCDATASection* codesection = document->createCDATASection(XercesString(code));
element->appendChild("c = '';"); // 0x1B is not a valid XML 1.0 character

DOMWriterPtr writer(impl->createLSSerializer());

writer->writeToString(document.get())

  was:
// Create a Document with a CDATA section that contains an invalid XML 
character (e.g. 0x1b). 
// This should fail when serializing the Document, but it does not when 
XMLUni::fgDOMWRTSplitCdataSections is true.


struct XercesDeleter
{
template
void operator()(T* data) const
{
if (data) { data->release(); };
}
};

typedef std::unique_ptr   
DOMWriterPtr;
typedef std::unique_ptr 
DOMDocumentPtr;


XMLPlatformUtils::Initialize();

DOMImplementation* impl = 
DOMImplementationRegistry::getDOMImplementation(XMLString::transcode("LS"));

 // Create DOM with a CDATA section
DOMDocumentPtr document(impl->createDocument());

DOMElement* element = 
document->createElementNS(XMLString::transcode("http://schemas.openxmlformats.org/wordprocessingml/2006/main;),
 XMLString::transcode("w:t"));
document->appendChild(element);

DOMCDATASection* codesection = document->createCDATASection(XercesString(code));
element->appendChild(codesection);

DOMWriterPtr writer(impl->createLSSerializer());

writer->writeToString(document.get())


> When XMLUni::fgDOMWRTSplitCdataSections is true (the default) invalid XML 
> characters are allowed by DOMWriter
> -
>
> Key: XERCESC-2239
> URL: https://issues.apache.org/jira/browse/XERCESC-2239
> Project: Xerces-C++
>  Issue Type: Bug
>  Components: DOM
>Affects Versions: 3.2.0
>Reporter: David Leffingwell
>Priority: Major
>
> // Create a Document with a CDATA section that contains an invalid XML 
> character (e.g. 0x1b). 
> // This should fail when serializing the Document, but it does not when 
> XMLUni::fgDOMWRTSplitCdataSections is true.
> struct XercesDeleter
> {
> template
> void operator()(T* data) const
> {
> if (data) { data->release(); };
> }
> };
> typedef std::unique_ptr  
>  DOMWriterPtr;
> typedef std::unique_ptr 
> DOMDocumentPtr;
> XMLPlatformUtils::Initialize();
> DOMImplementation* impl = 
> DOMImplementationRegistry::getDOMImplementation(XMLString::transcode("LS"));
>  // Create DOM with a CDATA section
> DOMDocumentPtr document(impl->createDocument());
> DOMElement* element = 
> document->createElementNS(XMLString::transcode("http://schemas.openxmlformats.org/wordprocessingml/2006/main;),
>  XMLString::transcode("w:t"));
> document->appendChild(element);
> DOMCDATASection* codesection = 
> document->createCDATASection(XercesString(code));
> element->appendChild("c = '';"); // 0x1B is not a valid XML 1.0 character
> DOMWriterPtr writer(impl->createLSSerializer());
> writer->writeToString(document.get())



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org
For additional commands, e-mail: c-dev-h...@xerces.apache.org



[jira] [Created] (XERCESC-2239) When XMLUni::fgDOMWRTSplitCdataSections is true (the default) invalid XML characters are allowed by DOMWriter

2022-09-07 Thread David Leffingwell (Jira)
David Leffingwell created XERCESC-2239:
--

 Summary: When XMLUni::fgDOMWRTSplitCdataSections is true (the 
default) invalid XML characters are allowed by DOMWriter
 Key: XERCESC-2239
 URL: https://issues.apache.org/jira/browse/XERCESC-2239
 Project: Xerces-C++
  Issue Type: Bug
  Components: DOM
Affects Versions: 3.2.0
Reporter: David Leffingwell


// Create a Document with a CDATA section that contains an invalid XML 
character (e.g. 0x1b). 
// This should fail when serializing the Document, but it does not when 
XMLUni::fgDOMWRTSplitCdataSections is true.


struct XercesDeleter
{
template
void operator()(T* data) const
{
if (data) { data->release(); };
}
};

typedef std::unique_ptr   
DOMWriterPtr;
typedef std::unique_ptr 
DOMDocumentPtr;


XMLPlatformUtils::Initialize();

DOMImplementation* impl = 
DOMImplementationRegistry::getDOMImplementation(XMLString::transcode("LS"));

 // Create DOM with a CDATA section
DOMDocumentPtr document(impl->createDocument());

DOMElement* element = 
document->createElementNS(XMLString::transcode("http://schemas.openxmlformats.org/wordprocessingml/2006/main;),
 XMLString::transcode("w:t"));
document->appendChild(element);

DOMCDATASection* codesection = document->createCDATASection(XercesString(code));
element->appendChild(codesection);

DOMWriterPtr writer(impl->createLSSerializer());

writer->writeToString(document.get())



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org
For additional commands, e-mail: c-dev-h...@xerces.apache.org