svn commit: r341604 - head/sys/kern

Brooks Davis brooks at FreeBSD.org
Wed Dec 5 19:18:17 UTC 2018


Author: brooks
Date: Wed Dec  5 19:18:16 2018
New Revision: 341604
URL: https://svnweb.freebsd.org/changeset/base/341604

Log:
  Further simplify arguments to init.
  
  With the removal of BOOTCDROM and fastboot support, this code always
  passed "-s" or "--". The latter simply terminates getopt(3) processing
  in init so we only need to pass "-s" in the single user case, or nothing
  in other cases.
  
  The passing of "--" seems to have been done to ensure that the number of
  arguments passed to init was always the same and thus that argc was the
  same.
  
  Also GC the write-only variable pathlen (not in reviewed version).
  
  Reviewed by:	kib, jhb
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D18441

Modified:
  head/sys/kern/init_main.c

Modified: head/sys/kern/init_main.c
==============================================================================
--- head/sys/kern/init_main.c	Wed Dec  5 19:16:12 2018	(r341603)
+++ head/sys/kern/init_main.c	Wed Dec  5 19:18:16 2018	(r341604)
@@ -718,9 +718,7 @@ static void
 start_init(void *dummy)
 {
 	struct image_args args;
-	int options, error;
-	size_t pathlen;
-	char flags[8], *flagp;
+	int error;
 	char *var, *path;
 	char *free_init_path, *tmp_init_path;
 	struct thread *td;
@@ -744,7 +742,6 @@ start_init(void *dummy)
 	free_init_path = tmp_init_path = strdup(init_path, M_TEMP);
 	
 	while ((path = strsep(&tmp_init_path, ":")) != NULL) {
-		pathlen = strlen(path) + 1;
 		if (bootverbose)
 			printf("start_init: trying %s\n", path);
 			
@@ -757,23 +754,11 @@ start_init(void *dummy)
 		error = exec_args_add_fname(&args, path, UIO_SYSSPACE);
 		if (error != 0)
 			panic("%s: Can't add fname %d", __func__, error);
-
 		error = exec_args_add_arg(&args, path, UIO_SYSSPACE);
 		if (error != 0)
 			panic("%s: Can't add argv[0] %d", __func__, error);
-
-		options = 0;
-		flagp = &flags[0];
-		*flagp++ = '-';
-		if (boothowto & RB_SINGLE) {
-			*flagp++ = 's';
-			options++;
-		}
-		if (options == 0)
-			*flagp++ = '-';
-		*flagp++ = 0;
-		KASSERT(flagp <= &flags[0] + sizeof(flags), ("Overran flags"));
-		error = exec_args_add_arg(&args, flags, UIO_SYSSPACE);
+		if (boothowto & RB_SINGLE)
+			error = exec_args_add_arg(&args, "-s", UIO_SYSSPACE);
 		if (error != 0)
 			panic("%s: Can't add argv[0] %d", __func__, error);
 


More information about the svn-src-all mailing list