diff options
| author | Leah Rowe <leah@libreboot.org> | 2023-01-28 12:23:10 +0000 | 
|---|---|---|
| committer | Leah Rowe <leah@libreboot.org> | 2023-01-28 12:24:50 +0000 | 
| commit | c822033beedc7765947f5e9332ee842778c5a7fb (patch) | |
| tree | 8b41f454714024bdab2adb827012a00b06204400 | |
| parent | 0f4852450caaee38ccfde2dc1727b0c6cf5f9fbd (diff) | |
util/nvmutil: simplify rhex()
don't use malloc(). instead, just load random bytes
into a uint64_t
| -rw-r--r-- | util/nvmutil/nvmutil.c | 13 | 
1 files changed, 5 insertions, 8 deletions
| 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 | 
