Bug #12660
closed[PATCH] openssl: avoid undefined behavior on empty SSL_write
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
Updated by rhenium (Kazuki Yamaguchi) over 8 years ago
Thanks! Looks fine to me. Please commit.
Updated by Anonymous over 8 years ago
- 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]
Updated by normalperson (Eric Wong) over 8 years ago
Updated by nagachika (Tomoyuki Chikanaga) over 8 years ago
- 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.
Updated by usa (Usaku NAKAMURA) over 8 years ago
- 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.