diff options
author | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-08-01 22:08:17 +0000 |
---|---|---|
committer | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-08-01 22:08:17 +0000 |
commit | 425b40600386d488a76ccea298a266136c15f5a7 (patch) | |
tree | 2002399609e93bf3c5ce1659cb365d6deedd673b | |
parent | b141847829ea040a73650eda5e1b83f97438a8ea (diff) | |
download | ruby-425b40600386d488a76ccea298a266136c15f5a7.tar.gz |
openssl/buffering: fix gets on EOF with limit
* 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]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-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" |