From a7d38ef15db212654d5bf10e58fc8605f3281e23 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Sat, 13 Sep 2014 13:09:25 -0700 Subject: [PATCH] Check outlen in blake2b_final Not required in Sodium since the check is already performed in higher-level functions, but it doesn't hurt either. --- src/libsodium/crypto_generichash/blake2/ref/blake2b-ref.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libsodium/crypto_generichash/blake2/ref/blake2b-ref.c b/src/libsodium/crypto_generichash/blake2/ref/blake2b-ref.c index 9cc7ede5..bd7bc0b8 100644 --- a/src/libsodium/crypto_generichash/blake2/ref/blake2b-ref.c +++ b/src/libsodium/crypto_generichash/blake2/ref/blake2b-ref.c @@ -387,6 +387,9 @@ int blake2b_final( blake2b_state *S, uint8_t *out, uint8_t outlen ) uint8_t buffer[BLAKE2B_OUTBYTES]; int i; + if( outlen > BLAKE2B_OUTBYTES ) { + return -1; + } if( S->buflen > BLAKE2B_BLOCKBYTES ) { blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );