Skip to content

Commit d8387c1

Browse files
tjarretttroosan
authored andcommitted
Escape incoming invalid XML characters using htmlspecialchars().
1 parent d8caa0b commit d8387c1

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/PhpWord/Reader/Word2007/AbstractPart.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ protected function readParagraph(XMLReader $xmlReader, \DOMElement $domNode, $pa
135135
}
136136
}
137137
}
138-
$parent->addPreserveText($textContent, $fontStyle, $paragraphStyle);
138+
$parent->addPreserveText(htmlspecialchars($textContent, ENT_QUOTES | ENT_XML1), $fontStyle, $paragraphStyle);
139139
} elseif ($xmlReader->elementExists('w:pPr/w:numPr', $domNode)) {
140140
// List item
141141
$numId = $xmlReader->getAttribute('w:val', $domNode, 'w:pPr/w:numPr/w:numId');
@@ -152,7 +152,7 @@ protected function readParagraph(XMLReader $xmlReader, \DOMElement $domNode, $pa
152152
$textContent = null;
153153
$nodes = $xmlReader->getElements('w:r', $domNode);
154154
if ($nodes->length === 1) {
155-
$textContent = $xmlReader->getValue('w:t', $nodes->item(0));
155+
$textContent = htmlspecialchars($xmlReader->getValue('w:t', $nodes->item(0)), ENT_QUOTES | ENT_XML1);
156156
} else {
157157
$textContent = new TextRun($paragraphStyle);
158158
foreach ($nodes as $node) {
@@ -275,7 +275,7 @@ protected function readRunChild(XMLReader $xmlReader, \DOMElement $node, Abstrac
275275
$parent->addText("\t");
276276
} elseif ($node->nodeName == 'w:t' || $node->nodeName == 'w:delText') {
277277
// TextRun
278-
$textContent = $xmlReader->getValue('.', $node);
278+
$textContent = htmlspecialchars($xmlReader->getValue('.', $node), ENT_QUOTES | ENT_XML1);
279279

280280
if ($runParent->nodeName == 'w:hyperlink') {
281281
$rId = $xmlReader->getAttribute('r:id', $runParent);

0 commit comments

Comments
 (0)