From 4199ce23fd3df23daccbf961b2ff1a2d42f89519 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Sat, 23 Dec 2023 14:18:18 +0000 Subject: [PATCH] rand/rand.c: Rearrange some comparisons to avoid arithmetic overflow. --- rand/rand.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rand/rand.c b/rand/rand.c index 90e81930..0d0650eb 100644 --- a/rand/rand.c +++ b/rand/rand.c @@ -413,7 +413,7 @@ void rand_get(rand_pool *r, void *p, size_t sz) if (!sz) return; for (;;) { - if (r->o + sz <= RAND_BUFSZ) { + if (sz <= RAND_BUFSZ - r->o) { memcpy(o, r->buf + r->o, sz); r->o += sz; break; @@ -475,7 +475,7 @@ void rand_getgood(rand_pool *r, void *p, size_t sz) chunk = r->obits / 8; } - if (chunk + r->o <= RAND_BUFSZ) { + if (chunk <= RAND_BUFSZ - r->o) { memcpy(o, r->buf + r->o, chunk); r->o += chunk; } else { -- 2.11.0