Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F135667174
D26738.id78102.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D26738.id78102.diff
View Options
Index: lib/libc/gen/arc4random.h
===================================================================
--- lib/libc/gen/arc4random.h
+++ lib/libc/gen/arc4random.h
@@ -27,9 +27,11 @@
#include <sys/elf.h>
#include <sys/endian.h>
#include <sys/mman.h>
+#if ARC4RANDOM_FXRNG != 0
#include <sys/time.h> /* for sys/vdso.h only. */
#include <sys/vdso.h>
#include <machine/atomic.h>
+#endif
#include <err.h>
#include <errno.h>
@@ -37,6 +39,7 @@
#include <stdbool.h>
#include <stdint.h>
+#if ARC4RANDOM_FXRNG != 0
/*
* The kernel root seed version is a 64-bit counter, but we truncate it to a
* 32-bit value in userspace for the convenience of 32-bit platforms. 32-bit
@@ -51,6 +54,7 @@
*/
#define fxrng_load_acq_generation(x) atomic_load_acq_32(x)
static struct vdso_fxrng_generation_1 *vdso_fxrngp;
+#endif
static pthread_mutex_t arc4random_mtx = PTHREAD_MUTEX_INITIALIZER;
#define _ARC4_LOCK() \
@@ -74,6 +78,7 @@
static inline void
_rs_initialize_fxrng(void)
{
+#if ARC4RANDOM_FXRNG != 0
struct vdso_fxrng_generation_1 *fxrngp;
int error;
@@ -91,6 +96,7 @@
return;
vdso_fxrngp = fxrngp;
+#endif
}
static inline int
@@ -131,13 +137,14 @@
/* Detect fork (minherit(2) INHERIT_ZERO). */
if (__predict_false(rs == NULL || rsx == NULL))
return;
+#if ARC4RANDOM_FXRNG != 0
/* If present, detect kernel FenestrasX seed version change. */
if (vdso_fxrngp == NULL)
return;
if (__predict_true(rsx->rs_seed_generation ==
fxrng_load_acq_generation(&vdso_fxrngp->fx_generation32)))
return;
-
+#endif
/* Invalidate rs_buf to force "stir" (reseed). */
memset(rs, 0, sizeof(*rs));
}
Index: lib/libc/gen/arc4random.c
===================================================================
--- lib/libc/gen/arc4random.c
+++ lib/libc/gen/arc4random.c
@@ -46,6 +46,11 @@
#define CHACHA_EMBED
#define KEYSTREAM_ONLY
+#if defined(__FreeBSD__)
+#define ARC4RANDOM_FXRNG 1
+#else
+#define ARC4RANDOM_FXRNG 0
+#endif
#include "chacha.c"
#define minimum(a, b) ((a) < (b) ? (a) : (b))
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Nov 12, 6:01 PM (10 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25219192
Default Alt Text
D26738.id78102.diff (1 KB)
Attached To
Mode
D26738: Fix building on Linux/macOS after r366622
Attached
Detach File
Event Timeline
Log In to Comment