mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-07-16 23:08:49 +02:00
nvmutil: don't read urandom fd if fd not open
yeah. obvious bug Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
+10
-7
@@ -1051,15 +1051,18 @@ rlong(void)
|
|||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
fd = open("/dev/random", O_RDONLY | O_BINARY | O_NONBLOCK);
|
fd = open("/dev/random", O_RDONLY | O_BINARY | O_NONBLOCK);
|
||||||
|
|
||||||
nr = rw_file_exact(fd, (unsigned char *)&rval,
|
if (fd > -1) {
|
||||||
sizeof(unsigned long), 0, IO_READ, LOOP_EAGAIN,
|
|
||||||
LOOP_EINTR, MAX_ZERO_RW_RETRY, OFF_ERR);
|
|
||||||
|
|
||||||
if (x_i_close(fd) < 0)
|
nr = rw_file_exact(fd, (unsigned char *)&rval,
|
||||||
err(errno, "Can't close randomness fd");
|
sizeof(unsigned long), 0, IO_READ, LOOP_EAGAIN,
|
||||||
|
LOOP_EINTR, MAX_ZERO_RW_RETRY, OFF_ERR);
|
||||||
|
|
||||||
if (nr == sizeof(unsigned long))
|
if (x_i_close(fd) < 0)
|
||||||
return rval;
|
err(errno, "Can't close randomness fd");
|
||||||
|
|
||||||
|
if (nr == sizeof(unsigned long))
|
||||||
|
return rval;
|
||||||
|
}
|
||||||
|
|
||||||
return mix;
|
return mix;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user