Fix faulty base64 decoding of data that was 46 or 47 bytes long.

Submitted by: Ivan Nejgebauer <ian@uns.ns.ac.yu>
This commit is contained in:
Ulf Möller 1999-08-13 19:42:33 +00:00
parent 1bf0b46b13
commit 2b7af70139

View 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)
{