summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <robert@gitlab.com>2016-01-20 19:03:32 +0000
committerRobert Speicher <rspeicher@gmail.com>2016-01-20 14:03:58 -0500
commit96f12f57fc4041add82aaf13f61ca22f0bcd5392 (patch)
treea5c7d587e7329e5da6e855063aa14bbcad2bd321
parent645f7750816d3f92d42221dd2fa38e60d1148b42 (diff)
downloadgitlab-ce-96f12f57fc4041add82aaf13f61ca22f0bcd5392.tar.gz
Merge branch 'fix-error-500-with-invalid-utf8' into 'master'
Gracefully handle invalid UTF-8 sequences in Markdown links Closes #6077 See merge request !2382
-rw-r--r--CHANGELOG1
-rw-r--r--lib/banzai/filter/reference_filter.rb2
2 files changed, 3 insertions, 0 deletions
diff --git a/CHANGELOG b/CHANGELOG
index ed637bc2548..17516b43181 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -10,6 +10,7 @@ v 8.4.0 (unreleased)
- Autocomplete data is now always loaded, instead of when focusing a comment text area
- Improved performance of finding issues for an entire group
- Added custom application performance measuring system powered by InfluxDB
+ - Gracefully handle invalid UTF-8 sequences in Markdown links (Stan Hu)
- Bump fog to 1.36.0 (Stan Hu)
- Add user's last used IP addresses to admin page (Stan Hu)
- Add housekeeping function to project settings page
diff --git a/lib/banzai/filter/reference_filter.rb b/lib/banzai/filter/reference_filter.rb
index 20bd4f7ee6e..3637b1bac94 100644
--- a/lib/banzai/filter/reference_filter.rb
+++ b/lib/banzai/filter/reference_filter.rb
@@ -133,6 +133,7 @@ module Banzai
next unless link && text
link = CGI.unescape(link)
+ next unless link.force_encoding('UTF-8').valid_encoding?
# Ignore ending punctionation like periods or commas
next unless link == text && text =~ /\A#{pattern}/
@@ -170,6 +171,7 @@ module Banzai
next unless link && text
link = CGI.unescape(link)
+ next unless link.force_encoding('UTF-8').valid_encoding?
next unless link && link =~ /\A#{pattern}\z/
html = yield link, text