diff options
author | Jack Lloyd <[email protected]> | 2016-12-08 00:53:22 -0500 |
---|---|---|
committer | Jack Lloyd <[email protected]> | 2016-12-08 00:53:22 -0500 |
commit | 41e7cade5889d238ca695806451db227b9792cd9 (patch) | |
tree | 52b30d0633505b5d8ecfda7ab9b6ee57a0d4aeac /src/lib/pk_pad/eme_pkcs1/eme_pkcs.cpp | |
parent | 388e4cb55f248c30a54d7ba87010eec560f6fc1f (diff) |
Avoid crash in PKCS1v1.5 unpadding if input len <= 2
Don't think this can't happen outside of a fuzzer test
Diffstat (limited to 'src/lib/pk_pad/eme_pkcs1/eme_pkcs.cpp')
-rw-r--r-- | src/lib/pk_pad/eme_pkcs1/eme_pkcs.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/pk_pad/eme_pkcs1/eme_pkcs.cpp b/src/lib/pk_pad/eme_pkcs1/eme_pkcs.cpp index 9bab8eb95..b14808da0 100644 --- a/src/lib/pk_pad/eme_pkcs1/eme_pkcs.cpp +++ b/src/lib/pk_pad/eme_pkcs1/eme_pkcs.cpp @@ -48,6 +48,12 @@ secure_vector<byte> EME_PKCS1v15::pad(const byte in[], size_t inlen, secure_vector<byte> EME_PKCS1v15::unpad(byte& valid_mask, const byte in[], size_t inlen) const { + if(inlen < 2) + { + valid_mask = false; + return secure_vector<byte>(); + } + CT::poison(in, inlen); byte bad_input_m = 0; |