diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | ext/openssl/lib/openssl/buffering.rb | 2 | ||||
-rw-r--r-- | test/openssl/test_pair.rb | 8 |
3 files changed, 18 insertions, 1 deletions
@@ -1,3 +1,12 @@ +Sun Aug 2 07:01:17 2015 Eric Wong <e@80x24.org> + + * ext/openssl/lib/openssl/buffering.rb (gets): + avoid comparing fixnum with nil + * test/openssl/test_pair.rb: test gets with limit when EOF is hit + Thanks to Bar Hofesh <bar.hofesh@safe-t.com> for the bug report + and testing. + [ruby-core:70149] [Bug #11400] + Sat Aug 1 17:13:15 2015 Kazuki Tsujimoto <kazuki@callcc.net> * lib/net/http/response.rb (Net::HTTPResponse::Inflater#finish): diff --git a/ext/openssl/lib/openssl/buffering.rb b/ext/openssl/lib/openssl/buffering.rb index 099e9603f6..63444cc45e 100644 --- a/ext/openssl/lib/openssl/buffering.rb +++ b/ext/openssl/lib/openssl/buffering.rb @@ -213,7 +213,7 @@ module OpenSSL::Buffering else size = idx ? idx+eol.size : nil end - if limit and limit >= 0 + if size && limit && limit >= 0 size = [size, limit].min end consume_rbuff(size) diff --git a/test/openssl/test_pair.rb b/test/openssl/test_pair.rb index 8e4aefce31..977d11a259 100644 --- a/test/openssl/test_pair.rb +++ b/test/openssl/test_pair.rb @@ -110,6 +110,14 @@ module OpenSSL::TestPairM } end + def test_gets_eof_limit + ssl_pair {|s1, s2| + s1.write("hello") + s1.close # trigger EOF + assert_match "hello", s2.gets("\n", 6), "[ruby-core:70149] [Bug #11140]" + } + end + def test_readpartial ssl_pair {|s1, s2| s2.write "a\nbcd" |