dumping ground for random patches and texts
 help / color / mirror / Atom feed
* [PATCH] openssl/buffering: fix gets on EOF with limit
@ 2015-08-01 21:57 Eric Wong
  0 siblings, 0 replies; only message in thread
From: Eric Wong @ 2015-08-01 21:57 UTC (permalink / raw)
  To: spew

* 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]
---
 ext/openssl/lib/openssl/buffering.rb | 2 +-
 test/openssl/test_pair.rb            | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/ext/openssl/lib/openssl/buffering.rb b/ext/openssl/lib/openssl/buffering.rb
index 099e960..63444cc 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 cd5d5d8..c742eb6 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"
-- 
EW


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-08-01 21:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-01 21:57 [PATCH] openssl/buffering: fix gets on EOF with limit Eric Wong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).