From: Thomas Devoogdt <[email protected]>

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 <[email protected]>
---
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

_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to