Skip to content

Commit

Permalink
Round bits up and target full pool size
Browse files Browse the repository at this point in the history
Rather than rounding bits down, round them up. Otherwise 249 bits full
in a 256 bit pool won't ever get filled up with the additional 7 bits.
In addition, target a full pool rather than a half pool, since a full
pool is sometimes required.
  • Loading branch information
zx2c4 committed Apr 4, 2022
1 parent 66323fb commit 6c7c226
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/haveged.c
Expand Up @@ -649,7 +649,7 @@ static void run_daemon( /* RETURN: nothing */
t[1] = time(NULL);
if (t[1] - t[0] > 600) {
/* add entropy on daemon start and then every 600 seconds unconditionally */
nbytes = poolSize / 2;
nbytes = poolSize;
r = (nbytes+sizeof(H_UINT)-1)/sizeof(H_UINT);
fills = h->n_fills;
if (havege_rng(h, (H_UINT *)output->buf, r)<1)
Expand Down Expand Up @@ -741,7 +741,7 @@ static void run_daemon( /* RETURN: nothing */
if (ioctl(random_fd, RNDGETENTCNT, &current) == -1)
error_exit("Couldn't query entropy-level from kernel");
/* get number of bytes needed to fill pool */
nbytes = (poolSize - current)/8;
nbytes = (poolSize - current + 7)/8;
if(nbytes<1) continue;
/* get that many random bytes */
r = (nbytes+sizeof(H_UINT)-1)/sizeof(H_UINT);
Expand Down

0 comments on commit 6c7c226

Please sign in to comment.