diff options
author | Leah Rowe <leah@libreboot.org> | 2023-06-01 12:58:33 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2023-06-01 12:58:33 +0100 |
commit | adf3aece6faa134379bde6f72ae0521b7012f707 (patch) | |
tree | abdcc0e1995021a7ec87f1b87c37970a7d54d52a /util/nvmutil/nvmutil.c | |
parent | b49da12dad4916a5678e35b1909bdc529a6d8474 (diff) |
util/nvmutil: fix faulty fd check
i screwed up in an earlier commit
this change fixes a bug where on rhex(), each
call would re-open /dev/urandom, resetting rfd
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'util/nvmutil/nvmutil.c')
-rw-r--r-- | util/nvmutil/nvmutil.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c index 77b33aa2..38d34436 100644 --- a/util/nvmutil/nvmutil.c +++ b/util/nvmutil/nvmutil.c @@ -141,9 +141,12 @@ rhex(void) { static int rfd = -1, n = 0; static uint8_t rnum[16]; - xopen(rfd, "/dev/urandom", O_RDONLY); - if (!n) + if (!n) { + if (rfd == -1) { + xopen(rfd, "/dev/urandom", O_RDONLY); + } xpread(rfd, (uint8_t *) &rnum, (n = 15) + 1, 0, "/dev/urandom"); + } return rnum[n--] & 0xf; } |