Move the SCT List extension parser into libssl.
[openssl.git] / ssl / s3_lib.c
index 31074f264abb9d0b0290e8f3fddbf23b888db30d..4531f4655667586a7bb5837bb011ad943d2c6422 100644 (file)
@@ -3029,8 +3029,8 @@ void ssl3_free(SSL *s)
        SSL_SRP_CTX_free(s);
 #endif
 #ifndef OPENSSL_NO_TLSEXT
-        if (s->s3->serverinfo_client_tlsext_custom_types != NULL)
-                OPENSSL_free(s->s3->serverinfo_client_tlsext_custom_types);
+       if (s->s3->serverinfo_client_tlsext_custom_types != NULL)
+               OPENSSL_free(s->s3->serverinfo_client_tlsext_custom_types);
 #endif
        OPENSSL_cleanse(s->s3,sizeof *s->s3);
        OPENSSL_free(s->s3);
@@ -3076,12 +3076,12 @@ void ssl3_clear(SSL *s)
                }
 #endif
 #ifndef OPENSSL_NO_TLSEXT
-        if (s->s3->serverinfo_client_tlsext_custom_types != NULL)
+       if (s->s3->serverinfo_client_tlsext_custom_types != NULL)
                {
-                OPENSSL_free(s->s3->serverinfo_client_tlsext_custom_types);
-                s->s3->serverinfo_client_tlsext_custom_types = NULL;
+               OPENSSL_free(s->s3->serverinfo_client_tlsext_custom_types);
+               s->s3->serverinfo_client_tlsext_custom_types = NULL;
                }
-        s->s3->serverinfo_client_tlsext_custom_types_count = 0;
+       s->s3->serverinfo_client_tlsext_custom_types_count = 0;
 #ifndef OPENSSL_NO_EC
        s->s3->is_probably_safari = 0;
 #endif /* !OPENSSL_NO_EC */
@@ -3908,9 +3908,10 @@ long ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
                break;
 
        case SSL_CTRL_GET_EXTRA_CHAIN_CERTS:
-               *(STACK_OF(X509) **)parg =  ctx->extra_certs;
-               if (parg == NULL && larg == 0)
+               if (ctx->extra_certs == NULL && larg == 0)
                        *(STACK_OF(X509) **)parg =  ctx->cert->key->chain;
+               else
+                       *(STACK_OF(X509) **)parg =  ctx->extra_certs;
                break;
 
        case SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS: