Bug #4550
closedLoading 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: www.gmail.com\r\n\r\n"
-> "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...
-> ""
-> "
301 Moved¶
\nThe document has moved\n<A HREF="https://mail.google.com/mail/\">here.\r\n\r\n"read 226 bytes
Conn keep-alive
<- "GET / HTTP/1.1\r\nAccept: /\r\nUser-Agent: Ruby\r\nHost: www.gmail.com\r\n\r\n"
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) from /usr/local/lib/ruby/1.9.1/openssl/buffering.rb:174:in
read_nonblock'from /usr/local/lib/ruby/1.9.1/net/protocol.rb:139:in
rbuf_fill' from /usr/local/lib/ruby/1.9.1/net/protocol.rb:120:in
readuntil'from /usr/local/lib/ruby/1.9.1/net/protocol.rb:130:in
readline' from /usr/local/lib/ruby/1.9.1/net/http.rb:2517:in
read_status_line'from /usr/local/lib/ruby/1.9.1/net/http.rb:2506:in
read_new' from /usr/local/lib/ruby/1.9.1/net/http.rb:1296:in
transport_request'from /usr/local/lib/ruby/1.9.1/net/http.rb:1271:in
request' from t.rb:18:in
block 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