Fix faulty base64 decoding of data that was 46 or 47 bytes long.
authorUlf Möller <ulf@openssl.org>
Fri, 13 Aug 1999 19:42:33 +0000 (19:42 +0000)
committerUlf Möller <ulf@openssl.org>
Fri, 13 Aug 1999 19:42:33 +0000 (19:42 +0000)
Submitted by: Ivan Nejgebauer <ian@uns.ns.ac.yu>

crypto/evp/encode.c

index 0152624..110435d 100644 (file)
@@ -294,12 +294,12 @@ int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,
                if (((i+1) == inl) && (((n&3) == 0) || eof))
                        v=B64_EOF;
 
-               if ((v == B64_EOF) || (n >= 64))
+               if ((v == B64_EOF) || (n >= 68))
                        {
                        /* This is needed to work correctly on 64 byte input
                         * lines.  We process the line and then need to
                         * accept the '\n' */
-                       if ((v != B64_EOF) && (n >= 64)) exp_nl=1;
+                       if ((v != B64_EOF) && (n >= 68)) exp_nl=1;
                        tmp2=v;
                        if (n > 0)
                                {