Fix "make test" seg fault with SCTP enabled
authorMatt Caswell <matt@openssl.org>
Tue, 11 Aug 2015 18:38:39 +0000 (19:38 +0100)
committerMatt Caswell <matt@openssl.org>
Tue, 11 Aug 2015 21:27:05 +0000 (22:27 +0100)
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 <tjh@openssl.org>
(cherry picked from commit f75d5171be0b3b5419c8974133e1573cf976a8bb)

ssl/d1_both.c

index 8dd8ea33ca79cd4b83c622dc9d5af5a7c1b5fd09..d453c07c8e69ab250ba8be11d9b450cb7db0db10 100644 (file)
@@ -1490,9 +1490,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;