[PATCH v2] miscutils/seedrng.c: fix <sys/random.h> include error on glibc < 2.25

Thomas Devoogdt thomas at devoogdt.com
Fri Feb 17 19:25:21 UTC 2023


From: Thomas Devoogdt <thomas.devoogdt at barco.com>

getrandom() was introduced in version 3.17 of the Linux kernel.
       Support was added to glibc in version 2.25.

https://man7.org/linux/man-pages/man2/getrandom.2.html

read_new_seed will anyway fallback to /dev/{u}random if (ret != len)

Signed-off-by: Thomas Devoogdt <thomas.devoogdt at barco.com>
---
v2:
 - check if __GLIBC_PREREQ is defined
 - assume by default that we have <sys/random.h>

---
 miscutils/seedrng.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/miscutils/seedrng.c b/miscutils/seedrng.c
index 967741dc7..91c93bdad 100644
--- a/miscutils/seedrng.c
+++ b/miscutils/seedrng.c
@@ -42,9 +42,21 @@
 #include "libbb.h"
 
 #include <linux/random.h>
-#include <sys/random.h>
 #include <sys/file.h>
 
+#define HAVE_SYS_RANDOM 1
+#if defined(__GLIBC_PREREQ)
+#if !__GLIBC_PREREQ(2, 25)
+#undef HAVE_SYS_RANDOM
+#endif
+#endif
+
+#if defined(HAVE_SYS_RANDOM)
+#include <sys/random.h>
+#else
+#define getrandom(buf, len, flags) (-1)
+#endif
+
 #ifndef GRND_INSECURE
 #define GRND_INSECURE 0x0004 /* Apparently some headers don't ship with this yet. */
 #endif
-- 
2.39.2



More information about the busybox mailing list