Commit 2b7af701 authored by Ulf Möller's avatar Ulf Möller
Browse files

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

Submitted by: Ivan Nejgebauer <ian@uns.ns.ac.yu>
parent 1bf0b46b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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)
				{