Test the state of SSL_in_init() from the info_callback
authorMatt Caswell <matt@openssl.org>
Thu, 19 Apr 2018 14:44:52 +0000 (15:44 +0100)
committerMatt Caswell <matt@openssl.org>
Fri, 20 Apr 2018 10:46:12 +0000 (11:46 +0100)
Check that in a handshake done event SSL_in_init() is 0 (see #4574)

Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6019)

test/sslapitest.c

index c4c0868a2b55d406960bfe8da0cde7140ffebbed..25230c889e53240779b348a6ec4792f6a243ccd3 100644 (file)
@@ -4269,6 +4269,12 @@ static void sslapi_info_callback(const SSL *s, int where, int ret)
         info_cb_failed = 1;
         return;
     }
+
+    /* Check that, if we've got SSL_CB_HANDSHAKE_DONE we are not in init */
+    if ((where & SSL_CB_HANDSHAKE_DONE) && SSL_in_init((SSL *)s) != 0) {
+        info_cb_failed = 1;
+        return;
+    }
 }
 
 /*