From 565a9e9fe31b8136f8a2b126320be8d92ca25b98 Mon Sep 17 00:00:00 2001 From: Kazuki Yamaguchi Date: Fri, 31 Mar 2017 15:36:35 +0900 Subject: ssl: check return value of SSL_set_fd() SSL_set_fd() may fail with 0 return if malloc() fails. Check that and raise an exception to avoid potential crash. --- ext/openssl/ossl_ssl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'ext') diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c index eef7dbec..e2c8eb5e 100644 --- a/ext/openssl/ossl_ssl.c +++ b/ext/openssl/ossl_ssl.c @@ -1483,7 +1483,8 @@ ossl_ssl_setup(VALUE self) GetOpenFile(io, fptr); rb_io_check_readable(fptr); rb_io_check_writable(fptr); - SSL_set_fd(ssl, TO_SOCKET(FPTR_TO_FD(fptr))); + if (!SSL_set_fd(ssl, TO_SOCKET(FPTR_TO_FD(fptr)))) + ossl_raise(eSSLError, "SSL_set_fd"); return Qtrue; } -- cgit v1.2.3