Commit 605236f6 authored by Kurt Roeckx's avatar Kurt Roeckx
Browse files

Fix more d2i cases to properly update the input pointer



Thanks to David Benjamin <davidben@google.com> for pointing them out.

Reviewed-by: default avatarSteve Henson <steve@openssl.org>
MR #1198
parent 9982cbbb
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -104,7 +104,8 @@ EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp,
            EVP_PKEY_free(ret);
            ret = EVP_PKCS82PKEY(p8);
            PKCS8_PRIV_KEY_INFO_free(p8);

            if (ret == NULL)
                goto err;
        } else {
            ASN1err(ASN1_F_D2I_PRIVATEKEY, ERR_R_ASN1_LIB);
            goto err;
@@ -160,7 +161,8 @@ EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp,
        }
        ret = EVP_PKCS82PKEY(p8);
        PKCS8_PRIV_KEY_INFO_free(p8);
        if (ret != NULL)
        if (ret == NULL)
            return NULL;
        *pp = p;
        if (a) {
            *a = ret;
+1 −3
Original line number Diff line number Diff line
@@ -184,9 +184,7 @@ X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length)
        return NULL;
    /* update length */
    length -= q - *pp;
    if (!length)
        return ret;
    if (!d2i_X509_CERT_AUX(&ret->aux, &q, length))
    if (length > 0 && !d2i_X509_CERT_AUX(&ret->aux, &q, length))
        goto err;
    *pp = q;
    return ret;