From 0b12fa75c9df5c2c9c2f5094514323360c0af981 Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Tue, 11 Aug 2015 19:38:39 +0100 Subject: [PATCH] Fix "make test" seg fault with SCTP enabled When config'd with "sctp" running "make test" causes a seg fault. This is actually due to the way ssltest works - it dives under the covers and frees up BIOs manually and so some BIOs are NULL when the SCTP code does not expect it. The simplest fix is just to add some sanity checks to make sure the BIOs aren't NULL before we use them. This problem occurs in master and 1.0.2. The fix has also been applied to 1.0.1 to keep the code in sync. Reviewed-by: Tim Hudson (cherry picked from commit f75d5171be0b3b5419c8974133e1573cf976a8bb) --- ssl/d1_both.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ssl/d1_both.c b/ssl/d1_both.c index b4ee7abe27..c2c8d57e9d 100644 --- a/ssl/d1_both.c +++ b/ssl/d1_both.c @@ -1370,9 +1370,12 @@ int dtls1_shutdown(SSL *s) { int ret; #ifndef OPENSSL_NO_SCTP - if (BIO_dgram_is_sctp(SSL_get_wbio(s)) && + BIO *wbio; + + wbio = SSL_get_wbio(s); + if (wbio != NULL && BIO_dgram_is_sctp(wbio) && !(s->shutdown & SSL_SENT_SHUTDOWN)) { - ret = BIO_dgram_sctp_wait_for_dry(SSL_get_wbio(s)); + ret = BIO_dgram_sctp_wait_for_dry(wbio); if (ret < 0) return -1; -- 2.25.1