BoringSSL: Fix PKCS12_parse() segfault when used without password
authorJouni Malinen <jouni@qca.qualcomm.com>
Mon, 17 Aug 2015 23:06:02 +0000 (02:06 +0300)
committerJouni Malinen <j@w1.fi>
Mon, 17 Aug 2015 23:06:02 +0000 (02:06 +0300)
Unlike OpenSSL PKCS12_parse(), the BoringSSL version seems to require
the password pointer to be non-NULL even if no password is present. Map
passwrd == NULL to passwd = "" to avoid a NULL pointer dereference
within BoringSSL.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/crypto/tls_openssl.c

index e3f8401..8c2df22 100644 (file)
@@ -2076,6 +2076,8 @@ static int tls_parse_pkcs12(SSL_CTX *ssl_ctx, SSL *ssl, PKCS12 *p12,
        pkey = NULL;
        cert = NULL;
        certs = NULL;
+       if (!passwd)
+               passwd = "";
        if (!PKCS12_parse(p12, passwd, &pkey, &cert, &certs)) {
                tls_show_errors(MSG_DEBUG, __func__,
                                "Failed to parse PKCS12 file");