RT2210: Add missing EVP_cleanup to example
[oweals/openssl.git] / crypto / pem / pem_lib.c
index 9e551d1795f913e1afe65bcce4b50af809d27c9f..2d328b4d36c4b997a3ab716f82006caca00f007f 100644 (file)
@@ -480,8 +480,9 @@ int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *plen,
        EVP_CIPHER_CTX_cleanup(&ctx);
        OPENSSL_cleanse((char *)buf,sizeof(buf));
        OPENSSL_cleanse((char *)key,sizeof(key));
-       j+=i;
-       if (!o)
+       if (o)
+               j+=i;
+       else
                {
                PEMerr(PEM_F_PEM_DO_HEADER,PEM_R_BAD_DECRYPT);
                return(0);
@@ -576,8 +577,8 @@ static int load_iv(char **fromp, unsigned char *to, int num)
        }
 
 #ifndef OPENSSL_NO_FP_API
-int PEM_write(FILE *fp, char *name, char *header, unsigned char *data,
-            long len)
+int PEM_write(FILE *fp, const char *name, const char *header,
+             const unsigned char *data, long len)
         {
         BIO *b;
         int ret;
@@ -594,8 +595,8 @@ int PEM_write(FILE *fp, char *name, char *header, unsigned char *data,
         }
 #endif
 
-int PEM_write_bio(BIO *bp, const char *name, char *header, unsigned char *data,
-            long len)
+int PEM_write_bio(BIO *bp, const char *name, const char *header,
+                 const unsigned char *data, long len)
        {
        int nlen,n,i,j,outl;
        unsigned char *buf = NULL;