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