From ba181c732806eed652e8b9990f22621c19590d77 Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Mon, 18 Sep 2023 07:45:03 +0000 Subject: HTML-escape the entire tag content of escaped HTML tags in textile (#38807). Patch by Holger Just. git-svn-id: https://svn.redmine.org/redmine/trunk@22302 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/redmine/wiki_formatting/textile/redcloth3.rb | 4 ++-- test/helpers/application_helper_test.rb | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/redmine/wiki_formatting/textile/redcloth3.rb b/lib/redmine/wiki_formatting/textile/redcloth3.rb index f0595f438..a2b53997f 100644 --- a/lib/redmine/wiki_formatting/textile/redcloth3.rb +++ b/lib/redmine/wiki_formatting/textile/redcloth3.rb @@ -1214,9 +1214,9 @@ class RedCloth3 < String all, tag, close = $1, $2, $3 if close.present? && (ALLOWED_TAGS.include?(tag) || (tag =~ /\Aredpre#\d+\z/)) - "<#{all}#{close}" + "<#{htmlesc all}#{close}" else - "<#{all}#{'>' unless close.blank?}" + "<#{htmlesc all}#{'>' unless close.blank?}" end end end diff --git a/test/helpers/application_helper_test.rb b/test/helpers/application_helper_test.rb index ddc55dcb8..a9e3b3a74 100644 --- a/test/helpers/application_helper_test.rb +++ b/test/helpers/application_helper_test.rb @@ -1296,12 +1296,13 @@ class ApplicationHelperTest < Redmine::HelperTest def test_html_tags to_test = { "
content
" => "

<div>content</div>

", - "
content
" => "

<div class=\"bold\">content</div>

", + "
content
" => "

<div class="bold">content</div>

", "" => "

<script>some script;</script>

", # do not escape pre/code tags "
\nline 1\nline2
" => "
\nline 1\nline2
", "
\nline 1\nline2
" => "
\nline 1\nline2
", - "
content
" => "
<div>content</div>
", + "
content
" => "
<div class=\"foo\">content</div>
", + "
content
" => "
<div class=\"<foo\">content</div>
", "