cp is only used when DSA is built.
[openssl.git] / crypto / asn1 / x_pubkey.c
index c4a849aff1e5dd62dd8a753438290bcc86300861..55630294b65bac218e8082a02fb691ddd2627dcb 100644 (file)
@@ -169,8 +169,8 @@ EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key)
        long j;
        int type;
        unsigned char *p;
        long j;
        int type;
        unsigned char *p;
-       const unsigned char *cp;
 #ifndef OPENSSL_NO_DSA
 #ifndef OPENSSL_NO_DSA
+       const unsigned char *cp;
        X509_ALGOR *a;
 #endif
 
        X509_ALGOR *a;
 #endif
 
@@ -198,7 +198,7 @@ EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key)
        a=key->algor;
        if (ret->type == EVP_PKEY_DSA)
                {
        a=key->algor;
        if (ret->type == EVP_PKEY_DSA)
                {
-               if (a->parameter->type == V_ASN1_SEQUENCE)
+               if (a->parameter && (a->parameter->type == V_ASN1_SEQUENCE))
                        {
                        ret->pkey.dsa->write_params=0;
                        cp=p=a->parameter->value.sequence->data;
                        {
                        ret->pkey.dsa->write_params=0;
                        cp=p=a->parameter->value.sequence->data;