Author: markj
Date: Fri May 10 04:28:17 2019
New Revision: 347423
URL: https://svnweb.freebsd.org/changeset/base/347423

Log:
  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.
  
  Reported and tested by:       ler
  Reviewed by:  cem, kib
  Approved by:  so (delphij)
  Sponsored by: The FreeBSD Foundation
  Differential Revision:        https://reviews.freebsd.org/D20218

Modified:
  head/sys/dev/random/ivy.c

Modified: head/sys/dev/random/ivy.c
==============================================================================
--- head/sys/dev/random/ivy.c   Fri May 10 02:30:16 2019        (r347422)
+++ head/sys/dev/random/ivy.c   Fri May 10 04:28:17 2019        (r347423)
@@ -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)
        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). */
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to