util/nvmutil: clean up rhex()

Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
Leah Rowe
2023-06-01 11:56:01 +01:00
parent 4d91bcc2d7
commit 18f39ab6fa
2 changed files with 6 additions and 5 deletions
+2 -3
View File
@@ -140,10 +140,9 @@ rhex(void)
{ {
static int rfd = -1, n = 0; static int rfd = -1, n = 0;
static uint8_t rnum[16]; static uint8_t rnum[16];
if (!n) { xopen(rfd, "/dev/urandom", O_RDONLY);
xopen(rfd, "/dev/urandom", O_RDONLY); if (!n)
xpread(rfd, (uint8_t *) &rnum, (n = 15) + 1, 0, "/dev/urandom"); xpread(rfd, (uint8_t *) &rnum, (n = 15) + 1, 0, "/dev/urandom");
}
return rnum[n--] & 0xf; return rnum[n--] & 0xf;
} }
+4 -2
View File
@@ -51,8 +51,10 @@ int big_endian;
#define ERR() errno = errno ? errno : ECANCELED #define ERR() errno = errno ? errno : ECANCELED
#define err_if(x) if (x) err(ERR(), NULL) #define err_if(x) if (x) err(ERR(), NULL)
#define xopen(f,l,p) if (opendir(l) != NULL) err(errno = EISDIR, "%s", l); \ #define xopen(f,l,p) \
if (f == -1) if ((f = open(l, p)) == -1) err(ERR(), "%s", l); \ if (f == -1) \
if (opendir(l) != NULL) err(errno = EISDIR, "%s", l); \
if ((f = open(l, p)) == -1) err(ERR(), "%s", l); \
struct stat st; if (fstat(f, &st) == -1) err(ERR(), "%s", l) struct stat st; if (fstat(f, &st) == -1) err(ERR(), "%s", l)
#define xpread(f, b, n, o, l) if (pread(f, b, n, o) == -1) err(ERR(), "%s", l) #define xpread(f, b, n, o, l) if (pread(f, b, n, o) == -1) err(ERR(), "%s", l)
#define handle_endianness() if (big_endian) xorswap_buf(p) #define handle_endianness() if (big_endian) xorswap_buf(p)