Commit 098c1e3d authored by Matt Caswell's avatar Matt Caswell
Browse files

Fix a leak in i2b_PVK



Commit 8e588e28 fixed a leak but introduced a new one.

Reviewed-by: default avatarTim Hudson <tjh@openssl.org>
Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
parent 1f644005
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -806,7 +806,7 @@ static int i2b_PVK(unsigned char **out, EVP_PKEY *pk, int enclevel,
                   pem_password_cb *cb, void *u)
{
    int outlen = 24, pklen;
    unsigned char *p, *salt = NULL;
    unsigned char *p = NULL, *salt = NULL;
    EVP_CIPHER_CTX *cctx = NULL;
    if (enclevel)
        outlen += PVK_SALTLEN;
@@ -828,7 +828,7 @@ static int i2b_PVK(unsigned char **out, EVP_PKEY *pk, int enclevel,

    cctx = EVP_CIPHER_CTX_new();
    if (cctx == NULL)
        return -1;
        goto error;

    write_ledword(&p, MS_PVKMAGIC);
    write_ledword(&p, 0);
@@ -882,6 +882,8 @@ static int i2b_PVK(unsigned char **out, EVP_PKEY *pk, int enclevel,

 error:
    EVP_CIPHER_CTX_free(cctx);
    if (*out == NULL)
        OPENSSL_free(p);
    return -1;
}