* [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).