mirror of
https://github.com/kemko/liquid.git
synced 2026-01-01 15:55:40 +03:00
Merge pull request #1070 from Shopify/url-decode-validation
Validate the character encoding in url_decode.
This commit is contained in:
@@ -52,7 +52,12 @@ module Liquid
|
||||
end
|
||||
|
||||
def url_decode(input)
|
||||
CGI.unescape(input.to_s) unless input.nil?
|
||||
return if input.nil?
|
||||
|
||||
result = CGI.unescape(input.to_s)
|
||||
raise Liquid::ArgumentError, "invalid byte sequence in #{result.encoding}" unless result.valid_encoding?
|
||||
|
||||
result
|
||||
end
|
||||
|
||||
def slice(input, offset, length = nil)
|
||||
|
||||
@@ -158,6 +158,10 @@ class StandardFiltersTest < Minitest::Test
|
||||
assert_equal '1', @filters.url_decode(1)
|
||||
assert_equal '2001-02-03', @filters.url_decode(Date.new(2001, 2, 3))
|
||||
assert_nil @filters.url_decode(nil)
|
||||
exception = assert_raises Liquid::ArgumentError do
|
||||
@filters.url_decode('%ff')
|
||||
end
|
||||
assert_equal 'Liquid error: invalid byte sequence in UTF-8', exception.message
|
||||
end
|
||||
|
||||
def test_truncatewords
|
||||
|
||||
Reference in New Issue
Block a user