Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/wiki_pages/front_matter_parser.rb')
-rw-r--r--lib/gitlab/wiki_pages/front_matter_parser.rb12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/gitlab/wiki_pages/front_matter_parser.rb b/lib/gitlab/wiki_pages/front_matter_parser.rb
index 071b0dde619..dbe848f0acf 100644
--- a/lib/gitlab/wiki_pages/front_matter_parser.rb
+++ b/lib/gitlab/wiki_pages/front_matter_parser.rb
@@ -53,7 +53,7 @@ module Gitlab
include Gitlab::Utils::StrongMemoize
def initialize(delim = nil, lang = '', text = nil)
- @lang = lang.downcase.presence || Gitlab::FrontMatter::DELIM_LANG[delim]
+ @lang = lang&.downcase.presence || Gitlab::FrontMatter::DELIM_LANG[delim]
@text = text&.strip!
end
@@ -109,11 +109,17 @@ module Gitlab
end
def parse_front_matter_block
- wiki_content.match(Gitlab::FrontMatter::PATTERN) { |m| Block.new(m[:delim], m[:lang], m[:front_matter]) } || Block.new
+ if match = Gitlab::FrontMatter::PATTERN_UNTRUSTED_REGEX.match(wiki_content)
+ Block.new(match[:delim], match[:lang], match[:front_matter])
+ else
+ Block.new
+ end
end
def strip_front_matter_block
- wiki_content.gsub(Gitlab::FrontMatter::PATTERN, '')
+ Gitlab::FrontMatter::PATTERN_UNTRUSTED_REGEX.replace_gsub(wiki_content) do
+ ''
+ end
end
end
end