aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-08-01 22:08:17 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-08-01 22:08:17 +0000
commit425b40600386d488a76ccea298a266136c15f5a7 (patch)
tree2002399609e93bf3c5ce1659cb365d6deedd673b
parentb141847829ea040a73650eda5e1b83f97438a8ea (diff)
downloadruby-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--ChangeLog9
-rw-r--r--ext/openssl/lib/openssl/buffering.rb2
-rw-r--r--test/openssl/test_pair.rb8
3 files changed, 18 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index d077c1bc8a..7a3775f31b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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"