Project

General

Profile

Actions

Bug #4550

closed

Loading an RSA public key during an HTTPS connection corrupts the connection

Added by drbrain (Eric Hodel) almost 13 years ago. Updated almost 13 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.3dev (2011-03-30 trunk 31213) [x86_64-darwin10.6.0]
Backport:
[ruby-core:35605]

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...
-> ""
-> "

<meta http-equiv="content-type" content="text/html;charset=utf-8">\n<TITLE>301 Moved</TITLE>\n

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

t.rb (367 Bytes) t.rb test file illustrating bug. drbrain (Eric Hodel), 04/04/2011 05:20 AM
Actions #1

Updated by naruse (Yui NARUSE) almost 13 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
This issue was solved with changeset r31242.
Eric, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

Actions

Also available in: Atom PDF

Like0
Like0