From c822033beedc7765947f5e9332ee842778c5a7fb Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 28 Jan 2023 12:23:10 +0000 Subject: util/nvmutil: simplify rhex() don't use malloc(). instead, just load random bytes into a uint64_t --- util/nvmutil/nvmutil.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'util') diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c index bc5859f4..e7c9f152 100644 --- a/util/nvmutil/nvmutil.c +++ b/util/nvmutil/nvmutil.c @@ -256,22 +256,19 @@ uint8_t rhex(void) { static int rfd = -1; - static uint8_t *rbuf = NULL; - static size_t rindex = 12; + static uint64_t rnum = 0; + static size_t rindex = 8; - if (rindex == 12) { + if (rindex == 8) { rindex = 0; - if (rbuf == NULL) - if ((rbuf = (uint8_t *) malloc(BUFSIZ)) == NULL) - err(errno, NULL); if (rfd == -1) if ((rfd = open("/dev/urandom", O_RDONLY)) == -1) err(errno, "/dev/urandom"); - if (read(rfd, rbuf, 12) == -1) + if (read(rfd, (uint8_t *) &rnum, 8) == -1) err(errno, "/dev/urandom"); } - return rbuf[rindex++] & 0xf; + return ((uint8_t *) &rnum)[rindex++] & 0xf; } void -- cgit v1.2.1