File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -335,7 +335,7 @@ def normalize_header(name)
335335 # @api private
336336 def validate_value ( value )
337337 v = value . to_s
338- return v unless v . include? ( "\n " )
338+ return v unless v . include? ( "\n " ) || v . include? ( " \r " )
339339
340340 raise HeaderError , "Invalid HTTP header field value: #{ v . inspect } "
341341 end
Original file line number Diff line number Diff line change @@ -651,6 +651,14 @@ def obj.inspect = "INSPECTED"
651651
652652 assert_includes err . message , '"bad\nvalue"'
653653 end
654+
655+ it "raises HeaderError when value contains a carriage return" do
656+ assert_raises ( HTTP ::HeaderError ) { headers . add "X-Test" , "foo\r bar" }
657+ end
658+
659+ it "raises HeaderError when value contains CRLF" do
660+ assert_raises ( HTTP ::HeaderError ) { headers . add "X-Test" , "foo\r \n bar" }
661+ end
654662 end
655663
656664 describe "#merge!" do
You can’t perform that action at this time.
0 commit comments