Check max_out against in_len, not plaintext_len in RC4/MD5 AEAD.
Like the non-stitched variant, this "AEAD" uses the output buffer as scratch space for the MAC. Thus it should require that max_out_len is large enough to fit that, even though it will never return that large of input. Change-Id: I5b30b0756408c2e433448f540e7c65251336d2f8 Reviewed-on: https://boringssl-review.googlesource.com/4704 Reviewed-by: Adam Langley <agl@google.com>
This commit is contained in:
parent
353d7cba24
commit
bc1fde3206
@ -299,7 +299,9 @@ static int aead_rc4_md5_tls_open(const EVP_AEAD_CTX *ctx, uint8_t *out,
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (max_out_len < plaintext_len) {
|
||||
if (max_out_len < in_len) {
|
||||
/* This requires that the caller provide space for the MAC, even though it
|
||||
* will always be removed on return. */
|
||||
OPENSSL_PUT_ERROR(CIPHER, aead_rc4_md5_tls_open, CIPHER_R_BUFFER_TOO_SMALL);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user