diff --git a/ChangeLog b/ChangeLog index 87801c80a8..d32fed4a93 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Tue Dec 24 23:37:40 2002 TADA Tadashi <sho@spc.gr.jp> + + * lib/cgi.rb (Cookie::parse), lib/cgi-lib.rb (initialize): Do not + pass to split() a bare string longer than 2 characters as + separator. + Tue Dec 24 19:19:24 2002 Tietew <tietew@tietew.net> * numeric.c (DBL_MAX_10_EXP): fix typo. [ruby-dev:36826] diff --git a/lib/cgi-lib.rb b/lib/cgi-lib.rb index ab4eef1068..bc780ffc4e 100644 --- a/lib/cgi-lib.rb +++ b/lib/cgi-lib.rb @@ -181,7 +181,7 @@ class CGI < SimpleDelegator super(@inputs) if ENV.has_key?('HTTP_COOKIE') or ENV.has_key?('COOKIE') - (ENV['HTTP_COOKIE'] or ENV['COOKIE']).split("; ").each do |x| + (ENV['HTTP_COOKIE'] or ENV['COOKIE']).split(/; /).each do |x| key, val = x.split(/=/,2) key = CGI::unescape(key) val = val.split(/&/).collect{|x|CGI::unescape(x)}.join("\0") diff --git a/lib/cgi.rb b/lib/cgi.rb index 714a3a2099..3dc5d51901 100644 --- a/lib/cgi.rb +++ b/lib/cgi.rb @@ -698,7 +698,7 @@ convert string charset, and set language to "ja". cookies = Hash.new([]) return cookies unless raw_cookie - raw_cookie.split('; ').each do |pairs| + raw_cookie.split(/; /).each do |pairs| name, values = pairs.split('=',2) name = CGI::unescape(name) values ||= ""