PluginOutput: Don't escape html entities twice

fixes #3707
This commit is contained in:
Johannes Meyer 2019-03-05 12:54:27 +01:00
parent 403c2d3495
commit 19231038a7
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 & bar',
'foo & bar'
);
}
public function testSimpleHtmlOutput()
{
/** @noinspection HtmlUnknownAttribute */