Commit fa454945 authored by Matt Caswell's avatar Matt Caswell
Browse files

Fix some mem leaks in sslapitest



A mem leak could occur on an error path. Also the mempacket BIO_METHOD
needs to be cleaned up, because of the newly added DTLS test.

Also fixed a double semi-colon in ssltestlib.c

Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
parent 8ff70f33
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -46,14 +46,18 @@ static int execute_test_large_message(const SSL_METHOD *smeth,
        goto end;
    }
    chaincert = PEM_read_bio_X509(certbio, NULL, NULL, NULL);
    BIO_free(certbio);
    certbio = NULL;
    if (chaincert == NULL) {
        printf("Unable to load certificate for chain\n");
        goto end;
    }

    if (!create_ssl_ctx_pair(smeth, cmeth, &sctx,
                             &cctx, cert, privkey)) {
        printf("Unable to create SSL_CTX pair\n");
        goto end;
    }
    BIO_free(certbio);
    certbio = NULL;

    /*
     * We assume the supplied certificate is big enough so that if we add
@@ -870,6 +874,8 @@ int main(int argc, char *argv[])

    testresult = run_tests(argv[0]);

    bio_s_mempacket_test_free();

#ifndef OPENSSL_NO_CRYPTO_MDEBUG
    if (CRYPTO_mem_leaks(err) <= 0)
        testresult = 1;
+1 −1
Original line number Diff line number Diff line
@@ -587,7 +587,7 @@ int create_ssl_objects(SSL_CTX *serverctx, SSL_CTX *clientctx, SSL **sssl,

    if (SSL_is_dtls(clientssl)) {
        s_to_c_bio = BIO_new(bio_s_mempacket_test());
        c_to_s_bio = BIO_new(bio_s_mempacket_test());;
        c_to_s_bio = BIO_new(bio_s_mempacket_test());
    } else {
        s_to_c_bio = BIO_new(BIO_s_mem());
        c_to_s_bio = BIO_new(BIO_s_mem());