From 9dc141bafa96a4c78e4783d3cba5bdc990717268 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 1 Apr 2026 14:35:24 +0100 Subject: lbutils/rand: close fd on urandom error Signed-off-by: Leah Rowe --- util/libreboot-utils/lib/rand.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'util') diff --git a/util/libreboot-utils/lib/rand.c b/util/libreboot-utils/lib/rand.c index a5617b18..02353560 100644 --- a/util/libreboot-utils/lib/rand.c +++ b/util/libreboot-utils/lib/rand.c @@ -175,11 +175,14 @@ retry_rand: { #error Unsupported operating system (possibly unsecure randomisation) #endif - if (rc < 0) - goto err; /* syscall fehler */ - - if (rc == 0) - goto err; /* prevent infinite loop on fatal err */ + if (rc < 0 || /* syscall fehler */ + rc == 0) { /* prevent infinite loop on fatal err */ +#if defined(USE_URANDOM) && \ + ((USE_URANDOM) > 0) + close_on_eintr(&fd); +#endif + goto err; + } if ((off += (size_t)rc) < n) goto retry_rand; -- cgit v1.2.1