Merge pull request #3708 from Icinga/fix/html-entities-in-plugin-output-3707

Don't escape html entities in plugin output twice

(cherry picked from commit affed19536)
Signed-off-by: Johannes Meyer <johannes.meyer@icinga.com>
This commit is contained in:
Johannes Meyer 2019-04-05 08:05:52 +02:00
parent 18de230a7e
commit 5b134bbfa4
2 changed files with 11 additions and 1 deletions

View File

@ -2,6 +2,7 @@
/* Icinga Web 2 | (c) 2013 Icinga Development Team | GPLv2+ */
use Icinga\Web\Dom\DomNodeIterator;
use Icinga\Web\View;
use Icinga\Module\Monitoring\Web\Helper\PluginOutputPurifier;
/**
@ -115,7 +116,8 @@ class Zend_View_Helper_PluginOutput extends Zend_View_Helper_Abstract
$output = preg_replace(
self::$txtPatterns,
self::$txtReplacements,
$this->view->escape($output)
// Not using the view here to escape this. The view sets `double_encode` to true
htmlspecialchars($output, ENT_COMPAT | ENT_SUBSTITUTE | ENT_HTML5, View::CHARSET, false)
);
$isHtml = false;
}

View File

@ -65,6 +65,14 @@ class PluginOutputTest extends BaseTestCase
);
}
public function testOutputWithHtmlEntities()
{
$this->checkOutput(
'foo&nbsp;&amp;&nbsp;bar',
'foo&nbsp;&amp;&nbsp;bar'
);
}
public function testSimpleHtmlOutput()
{
/** @noinspection HtmlUnknownAttribute */