Skip to content

Commit 052eb3a

Browse files
nobumame
authored andcommitted
When parsing cookies, only decode the values
1 parent c728632 commit 052eb3a

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

lib/cgi/cookie.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,6 @@ def self.parse(raw_cookie)
159159
raw_cookie.split(/;\s?/).each do |pairs|
160160
name, values = pairs.split('=',2)
161161
next unless name and values
162-
name = CGI.unescape(name)
163162
values ||= ""
164163
values = values.split('&').collect{|v| CGI.unescape(v,@@accept_charset) }
165164
if cookies.has_key?(name)

test/cgi/test_cgi_cookie.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,11 @@ def test_cgi_cookie_parse
101101
end
102102
end
103103

104+
def test_cgi_cookie_parse_not_decode_name
105+
cookie_str = "%66oo=baz;foo=bar"
106+
cookies = CGI::Cookie.parse(cookie_str)
107+
assert_equal({"%66oo" => ["baz"], "foo" => ["bar"]}, cookies)
108+
end
104109

105110
def test_cgi_cookie_arrayinterface
106111
cookie = CGI::Cookie.new('name1', 'a', 'b', 'c')

0 commit comments

Comments
 (0)