aboutsummaryrefslogtreecommitdiff
path: root/src/crypto/keccak.c
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2022-07-11 17:43:59 +0000
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2022-07-11 17:43:59 +0000
commit7a31d25b67dc7aa18f09a68720b1a3ecffaad93a (patch)
tree74f7c9966ec8a7f0bb0f3e4089b3207312e4d713 /src/crypto/keccak.c
parentMerge pull request #8413 (diff)
downloadmonero-7a31d25b67dc7aa18f09a68720b1a3ecffaad93a.tar.xz
keccak: error out if passed mdlen 100
If we were to call it with 100, it would cause rsiz to be 0, leading to an infinite loop. This is really a pedantic patch, but since there's already a range test, might as well make it better.
Diffstat (limited to 'src/crypto/keccak.c')
-rw-r--r--src/crypto/keccak.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/crypto/keccak.c b/src/crypto/keccak.c
index f098cbdf0..6616d3530 100644
--- a/src/crypto/keccak.c
+++ b/src/crypto/keccak.c
@@ -123,7 +123,7 @@ void keccak(const uint8_t *in, size_t inlen, uint8_t *md, int mdlen)
size_t i, rsiz, rsizw;
static_assert(HASH_DATA_AREA <= sizeof(temp), "Bad keccak preconditions");
- if (mdlen <= 0 || (mdlen > 100 && sizeof(st) != (size_t)mdlen))
+ if (mdlen <= 0 || (mdlen >= 100 && sizeof(st) != (size_t)mdlen))
{
local_abort("Bad keccak use");
}