svn commit: r307148 - in head/lib/libc: gen stdlib

Ed Maste emaste at FreeBSD.org
Wed Oct 12 13:56:16 UTC 2016


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];


More information about the svn-src-all mailing list