Update from stable branch.
[oweals/openssl.git] / crypto / pem / pem_info.c
index 6e0ad72605fb42097f65b9d48de2770d68843469..1b2be527edde007bf86c894d1f3b70f75bc6117e 100644 (file)
@@ -99,7 +99,7 @@ STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, pe
        int ok=0;
        STACK_OF(X509_INFO) *ret=NULL;
        unsigned int i,raw,ptype;
-       d2i_of_void *d2i;
+       d2i_of_void *d2i = 0;
 
        if (sk == NULL)
                {
@@ -339,6 +339,12 @@ int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc,
                {
                if ( (xi->enc_data!=NULL) && (xi->enc_len>0) )
                        {
+                       if (enc == NULL)
+                               {
+                               PEMerr(PEM_F_PEM_X509_INFO_WRITE_BIO,PEM_R_CIPHER_IS_NULL);
+                               goto err;
+                               }
+
                        /* copy from weirdo names into more normal things */
                        iv=xi->enc_cipher.iv;
                        data=(unsigned char *)xi->enc_data;