[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