Bug #12660
closed
[PATCH] openssl: avoid undefined behavior on empty SSL_write
Added by normalperson (Eric Wong) almost 8 years ago.
Updated almost 8 years ago.
Description
SSL_write(3ssl) manpage has this in the WARNINGS section:
When calling SSL_write() with num=0 bytes to be sent the
behaviour is undefined.
And indeed, the new test case demonstrates failures when
empty strings are used. So, match the behavior of IO#write,
IO#write_nonblock, and IO#syswrite by returning zero, as the
OpenSSL::SSL::SSLSocket API already closely mimics the IO one.
- ext/openssl/ossl_ssl.c (ossl_ssl_write_internal):
avoid undefined behavior
- test/openssl/test_pair.rb (test_write_zero): new test
Comments? Will commit in a week or so if no response.
Files
Thanks! Looks fine to me. Please commit.
- Status changed from Open to Closed
Applied in changeset r55822.
openssl: avoid undefined behavior on empty SSL_write
SSL_write(3ssl) manpage has this in the WARNINGS section:
When calling SSL_write() with num=0 bytes to be sent the
behaviour is undefined.
And indeed, the new test case demonstrates failures when
empty strings are used. So, match the behavior of IO#write,
IO#write_nonblock, and IO#syswrite by returning zero, as the
OpenSSL::SSL::SSLSocket API already closely mimics the IO one.
- ext/openssl/ossl_ssl.c (ossl_ssl_write_internal):
avoid undefined behavior
- test/openssl/test_pair.rb (test_write_zero): new test
[ruby-core:76751] [Bug #12660]
k@rhe.jp wrote:
Thanks! Looks fine to me. Please commit.
Thanks for quick review :> r55822
- Backport changed from 2.1: REQUIRED, 2.2: REQUIRED, 2.3: REQUIRED to 2.1: REQUIRED, 2.2: REQUIRED, 2.3: DONE
ruby_2_3 r55961 merged revision(s) 55822.
- Backport changed from 2.1: REQUIRED, 2.2: REQUIRED, 2.3: DONE to 2.1: REQUIRED, 2.2: DONE, 2.3: DONE
ruby_2_2 r56300 merged revision(s) 55822.
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0