Author: emaste
Date: Wed Oct 12 13:56:14 2016
New Revision: 307148
URL: https://svnweb.freebsd.org/changeset/base/307148

Log:
  Add comment on use of abort() in libc
  
  Suggested by: jonathan (in review D8133)

Modified:
  head/lib/libc/gen/arc4random.c
  head/lib/libc/stdlib/random.c

Modified: head/lib/libc/gen/arc4random.c
==============================================================================
--- head/lib/libc/gen/arc4random.c      Wed Oct 12 13:51:41 2016        
(r307147)
+++ head/lib/libc/gen/arc4random.c      Wed Oct 12 13:56:14 2016        
(r307148)
@@ -144,8 +144,15 @@ arc4_stir(void)
                arc4_init();
                rs_initialized = 1;
        }
-       if (arc4_sysctl(rdat, KEYSIZE) != KEYSIZE)
-               abort(); /* Random sysctl cannot fail. */
+       if (arc4_sysctl(rdat, KEYSIZE) != KEYSIZE) {
+               /*
+                * The sysctl cannot fail. If it does fail on some FreeBSD
+                * derivative or after some future change, just abort so that
+                * the problem will be found and fixed. abort is not normally
+                * suitable for a library but makes sense here.
+                */
+               abort();
+       }
 
        arc4_addrandom(rdat, KEYSIZE);
 

Modified: head/lib/libc/stdlib/random.c
==============================================================================
--- head/lib/libc/stdlib/random.c       Wed Oct 12 13:51:41 2016        
(r307147)
+++ head/lib/libc/stdlib/random.c       Wed Oct 12 13:56:14 2016        
(r307148)
@@ -279,8 +279,15 @@ srandomdev(void)
 
        mib[0] = CTL_KERN;
        mib[1] = KERN_ARND;
-       if (sysctl(mib, 2, state, &len, NULL, 0) == -1 || len != expected)
+       if (sysctl(mib, 2, state, &len, NULL, 0) == -1 || len != expected) {
+               /*
+                * The sysctl cannot fail. If it does fail on some FreeBSD
+                * derivative or after some future change, just abort so that
+                * the problem will be found and fixed. abort is not normally
+                * suitable for a library but makes sense here.
+                */
                abort();
+       }
 
        if (rand_type != TYPE_0) {
                fptr = &state[rand_sep];
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to