Module Name:    src
Committed By:   martin
Date:           Mon Jul 31 15:57:43 UTC 2023

Modified Files:
        src/sbin/rndctl [netbsd-10]: rndctl.c
        src/sys/kern [netbsd-10]: kern_entropy.c

Log Message:
Pull up following revision(s) (requested by riastradh in ticket #273):

        sys/kern/kern_entropy.c: revision 1.59
        sbin/rndctl/rndctl.c: revision 1.41

entropy(9): Allow changing flags on all entropy sources at once.

Entropy sources should all have nonempty names, and this will enable
an operator to, for example, disable all but a specific entropy
source.

rndctl(8): Take omitted name/type as empty device name.

This can now be used to change flags for all sources at once.


To generate a diff of this commit:
cvs rdiff -u -r1.40 -r1.40.6.1 src/sbin/rndctl/rndctl.c
cvs rdiff -u -r1.57.4.1 -r1.57.4.2 src/sys/kern/kern_entropy.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sbin/rndctl/rndctl.c
diff -u src/sbin/rndctl/rndctl.c:1.40 src/sbin/rndctl/rndctl.c:1.40.6.1
--- src/sbin/rndctl/rndctl.c:1.40	Sun Apr  4 13:37:17 2021
+++ src/sbin/rndctl/rndctl.c	Mon Jul 31 15:57:43 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: rndctl.c,v 1.40 2021/04/04 13:37:17 nia Exp $	*/
+/*	$NetBSD: rndctl.c,v 1.40.6.1 2023/07/31 15:57:43 martin Exp $	*/
 
 /*-
  * Copyright (c) 1997 Michael Graff.
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: rndctl.c,v 1.40 2021/04/04 13:37:17 nia Exp $");
+__RCSID("$NetBSD: rndctl.c,v 1.40.6.1 2023/07/31 15:57:43 martin Exp $");
 #endif
 
 #include <sys/param.h>
@@ -570,7 +570,7 @@ main(int argc, char **argv)
 	rndctl_t rctl;
 	int ch, cmd, lflag, mflag, sflag;
 	u_int32_t type;
-	char name[16];
+	char name[16] = "";
 	const char *filename = NULL;
 
 	if (SHA3_Selftest() != 0)
@@ -695,12 +695,6 @@ main(int argc, char **argv)
 		usage();
 
 	/*
-	 * If not listing, we need a device name or a type.
-	 */
-	if (lflag == 0 && cmd == 0 && sflag == 0)
-		usage();
-
-	/*
 	 * Modify request.
 	 */
 	if (mflag != 0) {

Index: src/sys/kern/kern_entropy.c
diff -u src/sys/kern/kern_entropy.c:1.57.4.1 src/sys/kern/kern_entropy.c:1.57.4.2
--- src/sys/kern/kern_entropy.c:1.57.4.1	Mon Jul 31 15:43:33 2023
+++ src/sys/kern/kern_entropy.c	Mon Jul 31 15:57:43 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_entropy.c,v 1.57.4.1 2023/07/31 15:43:33 martin Exp $	*/
+/*	$NetBSD: kern_entropy.c,v 1.57.4.2 2023/07/31 15:57:43 martin Exp $	*/
 
 /*-
  * Copyright (c) 2019 The NetBSD Foundation, Inc.
@@ -75,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_entropy.c,v 1.57.4.1 2023/07/31 15:43:33 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_entropy.c,v 1.57.4.2 2023/07/31 15:57:43 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -1634,6 +1634,8 @@ rnd_attach_source(struct krndsource *rs,
 	uint32_t extra[4];
 	unsigned i = 0;
 
+	KASSERTMSG(name[0] != '\0', "rndsource must have nonempty name");
+
 	/* Grab cycle counter to mix extra into the pool.  */
 	extra[i++] = entropy_timer();
 
@@ -2387,7 +2389,7 @@ entropy_ioctl(unsigned long cmd, void *d
 			if (rndctl->type != 0xff) {
 				if (rs->type != rndctl->type)
 					continue;
-			} else {
+			} else if (rndctl->name[0] != '\0') {
 				if (strncmp(rs->name, rndctl->name, n) != 0)
 					continue;
 			}

Reply via email to