
Issue #19188 has been reported by apremdas@yahoo.co.uk (Andrew Premdas). ---------------------------------------- Bug #19188: Ruby 2.7.7 CGI Cookie Processing https://bugs.ruby-lang.org/issues/19188 * Author: apremdas@yahoo.co.uk (Andrew Premdas) * Status: Open * Priority: Normal * ruby -v: ruby 2.7.7p221 (2022-11-24 revision 168ec2b1e5) [arm64-darwin22] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- This is my first bug report here, apologies if I mess things up. Ruby 2.7.7 introduced a code change in lib/ruby/2.7.0/cgi/cookie.rb. There is now a custom setter for the domain attribute. You can see me debugging this below ``` 126: def domain=(str) 127: byebug => 128: if str and ((str = str.b).bytesize > 255 or !DOMAIN_VALUE_RE.match?(str)) 129: raise ArgumentError, "invalid domain: #{str.dump}" 130: end ``` When you are running a test on rails using capybara and rspec the value of domain will be ".example.com". This value is the same on ruby 2.7.6. The new code in 2.7.7 rejects this code as an invalid domain because `DOMAIN_VALUE_RE.match?(str)` is false. I think `DOMAIN_VALUE_RE` needs to be changed so it matches ".example.com" otherwise lots of tests on Rails applications are going to fail -- https://bugs.ruby-lang.org/