chiark
/
gitweb
/
~mdw
/
catacomb
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
a168920
)
rand/rand.c: Rearrange some comparisons to avoid arithmetic overflow.
author
Mark Wooding
<mdw@distorted.org.uk>
Sat, 23 Dec 2023 14:18:18 +0000
(14:18 +0000)
committer
Mark Wooding
<mdw@distorted.org.uk>
Sat, 23 Dec 2023 14:33:09 +0000
(14:33 +0000)
rand/rand.c
patch
|
blob
|
blame
|
history
diff --git
a/rand/rand.c
b/rand/rand.c
index 90e819304623e4a51d7dc4968b39bf34ecd916a9..0d0650eb9dc6a71e78825dc076e3db9c81ecf4f4 100644
(file)
--- 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 {