git: 5f5c20f3b2a8 - stable/12 - Avoid returning a NULL pointer from the Intel hw PRNG ifunc resolver.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 21 Feb 2022 08:07:45 UTC
The branch stable/12 has been updated by obrien: URL: https://cgit.FreeBSD.org/src/commit/?id=5f5c20f3b2a8f58e1f4ace73aa92a9f4ae46568c commit 5f5c20f3b2a8f58e1f4ace73aa92a9f4ae46568c Author: Mark Johnston <markj@FreeBSD.org> AuthorDate: 2019-05-10 04:28:17 +0000 Commit: David E. O'Brien <obrien@FreeBSD.org> CommitDate: 2022-02-21 05:56:42 +0000 Avoid returning a NULL pointer from the Intel hw PRNG ifunc resolver. DTrace expects kernel function symbols of a non-zero size to have an implementation, which is a reasonable invariant to preserve. (cherry picked from commit b870199522666a66e378e90ca3dbef39c30f12c6) --- sys/dev/random/ivy.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sys/dev/random/ivy.c b/sys/dev/random/ivy.c index 5ff288b394ac..e45e6a2d1242 100644 --- a/sys/dev/random/ivy.c +++ b/sys/dev/random/ivy.c @@ -97,6 +97,13 @@ x86_rdseed_store(u_long *buf) return (retry); } +static int +x86_unimpl_store(u_long *buf __unused) +{ + + panic("%s called", __func__); +} + DEFINE_IFUNC(static, int, x86_rng_store, (u_long *buf), static) { has_rdrand = (cpu_feature2 & CPUID2_RDRAND); @@ -107,7 +114,7 @@ DEFINE_IFUNC(static, int, x86_rng_store, (u_long *buf), static) else if (has_rdrand) return (x86_rdrand_store); else - return (NULL); + return (x86_unimpl_store); } /* It is required that buf length is a multiple of sizeof(u_long). */