ruby-changes:69911
From: Nobuyoshi <ko1@a...>
Date: Wed, 24 Nov 2021 19:59:12 +0900 (JST)
Subject: [ruby-changes:69911] 0f31b3f465 (master): [ruby/cgi] When parsing cookies, only decode the values
https://git.ruby-lang.org/ruby.git/commit/?id=0f31b3f465 From 0f31b3f465036884fc0e22ddb4fe5d46279eccae Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada <nobu@r...> Date: Mon, 29 Jun 2020 10:29:25 +0900 Subject: [ruby/cgi] When parsing cookies, only decode the values https://github.com/ruby/cgi/commit/052eb3a828 --- lib/cgi/cookie.rb | 1 - test/cgi/test_cgi_cookie.rb | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/cgi/cookie.rb b/lib/cgi/cookie.rb index ae9ab58edef..6b0d89ca3ba 100644 --- a/lib/cgi/cookie.rb +++ b/lib/cgi/cookie.rb @@ -159,7 +159,6 @@ class CGI https://github.com/ruby/ruby/blob/trunk/lib/cgi/cookie.rb#L159 raw_cookie.split(/;\s?/).each do |pairs| name, values = pairs.split('=',2) next unless name and values - name = CGI.unescape(name) values ||= "" values = values.split('&').collect{|v| CGI.unescape(v,@@accept_charset) } if cookies.has_key?(name) diff --git a/test/cgi/test_cgi_cookie.rb b/test/cgi/test_cgi_cookie.rb index 115a57e4a10..985cc0d7a1a 100644 --- a/test/cgi/test_cgi_cookie.rb +++ b/test/cgi/test_cgi_cookie.rb @@ -101,6 +101,11 @@ class CGICookieTest < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/cgi/test_cgi_cookie.rb#L101 end end + def test_cgi_cookie_parse_not_decode_name + cookie_str = "%66oo=baz;foo=bar" + cookies = CGI::Cookie.parse(cookie_str) + assert_equal({"%66oo" => ["baz"], "foo" => ["bar"]}, cookies) + end def test_cgi_cookie_arrayinterface cookie = CGI::Cookie.new('name1', 'a', 'b', 'c') -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/