Bug #4550
Loading an RSA public key during an HTTPS connection corrupts the connection
Description
=begin
The attached file creates an HTTPS connection to gmail.com then loads an RSA public key.
If a private key is loaded the error does not reproduce.
Loading of the public key corrupts the HTTPS connection resulting in the following error:
SSL_read:: no start line (OpenSSL::SSL::SSLError)
full output:
$ ruby19 -v -Ilib t.rb
ruby 1.9.3dev (2011-03-30 trunk 31213) [x86_64-darwin10.6.0]
opening connection to www.gmail.com...
opened
<- "GET / HTTP/1.1\r\nAccept: /\r\nUser-Agent: Ruby\r\nHost: "
-> "HTTP/1.1 301 Moved Permanently\r\n"
-> "Location: https://mail.google.com/mail/\r\n"
-> "Content-Type: text/html; charset=UTF-8\r\n"
-> "X-Content-Type-Options: nosniff\r\n"
-> "Date: Sun, 03 Apr 2011 20:15:44 GMT\r\n"
-> "Expires: Tue, 03 May 2011 20:15:44 GMT\r\n"
-> "Server: sffe\r\n"
-> "Content-Length: 226\r\n"
-> "X-XSS-Protection: 1; mode=block\r\n"
-> "Cache-Control: public, max-age=2592000\r\n"
-> "Age: 123\r\n"
-> "\r\n"
reading 226 bytes...
-> ""
-> "\n301 Moved\n301 Moved\nThe document has moved\nhere.\r\n\r\n"
read 226 bytes
Conn keep-alive
<- "GET / HTTP/1.1\r\nAccept: /\r\nUser-Agent: Ruby\r\nHost: "
Conn close because of error SSL_read:: no start line
/usr/local/lib/ruby/1.9.1/openssl/buffering.rb:174:in sysread_nonblock': SSL_read:: no start line (OpenSSL::SSL::SSLError)
read_nonblock'
from /usr/local/lib/ruby/1.9.1/openssl/buffering.rb:174:in
from /usr/local/lib/ruby/1.9.1/net/protocol.rb:139:in rbuf_fill'
readuntil'
from /usr/local/lib/ruby/1.9.1/net/protocol.rb:120:in
from /usr/local/lib/ruby/1.9.1/net/protocol.rb:130:in readline'
read_status_line'
from /usr/local/lib/ruby/1.9.1/net/http.rb:2517:in
from /usr/local/lib/ruby/1.9.1/net/http.rb:2506:in read_new'
transport_request'
from /usr/local/lib/ruby/1.9.1/net/http.rb:1296:in
from /usr/local/lib/ruby/1.9.1/net/http.rb:1271:in request'
block in '
from t.rb:18:in
from /usr/local/lib/ruby/1.9.1/net/http.rb:732:in start'
'
from t.rb:11:in
This bug was originally reported on mechanize: https://github.com/tenderlove/mechanize/issues#issue/27
=end
Files