Project

General

Profile

Actions

Bug #723

closed

Net::HTTPHeader doesn't check the type of the 'value'

Added by eveel (Dmitry A. Ustalov) over 15 years ago. Updated almost 13 years ago.

Status:
Closed
Target version:
-
ruby -v:
[ruby-core:19737]

Description

=begin
initialize_http_header() method of the Net::HTTPHeader doesn't check the type of the 'value', and crashes with exception:
---8<---
/usr/lib/ruby/1.8/net/http.rb:1142:in initialize_http_header': undefined method strip' for 1.43:Float (NoMethodError)
from /usr/lib/ruby/1.8/net/http.rb:1140:in each' from /usr/lib/ruby/1.8/net/http.rb:1140:in initialize_http_header'
from /usr/lib/ruby/1.8/net/http.rb:1472:in initialize' from /usr/lib/ruby/1.8/net/http.rb:1588:in initialize'
from /usr/lib/ruby/1.8/net/http.rb:845:in new' from /usr/lib/ruby/1.8/net/http.rb:845:in post'
--->8---

I think, we need to cast any 'value' to String in the initialize_http_header():
---8<---
def initialize_http_header(initheader)
@header = {}
return unless initheader
initheader.each do |key, value|
warn "net/http: warning: duplicated HTTP header: #{key}" if key?(key) and $VERBOSE
@header[key.downcase] = [value.strip]
end
end
--->8---
Maybe, we should use 'value.to_s.strip' instead of 'value.strip'?

My system is: Fedora 8 i386, ruby 1.8.6 (p111).

// Added later: This bug is also occured in ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-linux] (Fedora 9 i386).
=end


Files

http-rb-fix-crash-when-initializing-header.patch (912 Bytes) http-rb-fix-crash-when-initializing-header.patch not a beautiful, but bugfix eveel (Dmitry A. Ustalov), 11/08/2008 06:41 PM
reproduce.rb (356 Bytes) reproduce.rb reproduce the bug eveel (Dmitry A. Ustalov), 11/08/2008 06:41 PM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0