Prepare for 0.9.8j release.
[oweals/openssl.git] / crypto / evp / encode.c
index 2968f6460ad131fd5269c6d615631924c720f91e..5921f0d710d8faed65c203cf180a7a4b320facb8 100644 (file)
@@ -313,7 +313,7 @@ int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,
                        /* There will never be more than two '=' */
                        }
 
-               if ((v == B64_EOF) || (n >= 64))
+               if ((v == B64_EOF && (n&3) == 0) || (n >= 64))
                        {
                        /* This is needed to work correctly on 64 byte input
                         * lines.  We process the line and then need to
@@ -323,8 +323,8 @@ int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,
                        if (n > 0)
                                {
                                v=EVP_DecodeBlock(out,d,n);
-                               if (v < 0) { rv=0; goto end; }
                                n=0;
+                               if (v < 0) { rv=0; goto end; }
                                ret+=(v-eof);
                                }
                        else