summaryrefslogtreecommitdiffstats
path: root/crypto/evp
diff options
context:
space:
mode:
authorGeoff Thorpe <geoff@openssl.org>2014-05-04 18:44:14 -0400
committerGeoff Thorpe <geoff@openssl.org>2014-05-06 18:02:02 -0400
commit65402586c0d946cb0092f4a291eac60832655098 (patch)
treeecdd32f4e0631c1e55b0e528fd9890a653d610ca /crypto/evp
parentbf43446835bfd3f9abf1898a99ae20f2285320f3 (diff)
evp: prevent underflow in base64 decoding
This patch resolves RT ticket #2608. Thanks to Robert Dugal for originally spotting this, and to David Ramos for noticing that the ball had been dropped. Signed-off-by: Geoff Thorpe <geoff@openssl.org>
Diffstat (limited to 'crypto/evp')
-rw-r--r--crypto/evp/encode.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/crypto/evp/encode.c b/crypto/evp/encode.c
index 28546a84bc..4654bdc61a 100644
--- a/crypto/evp/encode.c
+++ b/crypto/evp/encode.c
@@ -324,6 +324,7 @@ int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,
v=EVP_DecodeBlock(out,d,n);
n=0;
if (v < 0) { rv=0; goto end; }
+ if (eof > v) { rv=-1; goto end; }
ret+=(v-eof);
}
else