Do no try to pretend we're at the end of anything unless we're at the end
authorRichard Levitte <levitte@openssl.org>
Mon, 20 Jun 2005 22:11:21 +0000 (22:11 +0000)
committerRichard Levitte <levitte@openssl.org>
Mon, 20 Jun 2005 22:11:21 +0000 (22:11 +0000)
of a 4-character block.

crypto/evp/encode.c

index 08209357ce0a3230b5aad4b38ee11be22c1e4ffb..33e540087d551fa5f0eeee1123b93c7f9a35a89c 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