summaryrefslogtreecommitdiffstats
path: root/sbin
diff options
context:
space:
mode:
Diffstat (limited to 'sbin')
-rw-r--r--sbin/init/Makefile2
-rw-r--r--sbin/init/init.c63
2 files changed, 40 insertions, 25 deletions
diff --git a/sbin/init/Makefile b/sbin/init/Makefile
index d3e9e96..1d7c39f 100644
--- a/sbin/init/Makefile
+++ b/sbin/init/Makefile
@@ -7,8 +7,8 @@ MLINKS= init.8 securelevel.8
BINMODE=500
PRECIOUSPROG=
INSTALLFLAGS=-b -B.bak
+WARNS?= 6
CFLAGS+=-DDEBUGSHELL -DSECURE -DLOGIN_CAP -DCOMPAT_SYSV_INIT
-WARNS?= 0
DPADD= ${LIBUTIL} ${LIBCRYPT}
LDADD= -lutil -lcrypt
diff --git a/sbin/init/init.c b/sbin/init/init.c
index 6daeab8..cfba319 100644
--- a/sbin/init/init.c
+++ b/sbin/init/init.c
@@ -103,6 +103,7 @@ void emergency(const char *, ...) __printflike(1, 2);
void disaster(int);
void badsys(int);
int runshutdown(void);
+static char *strk(char *);
/*
* We really need a recursive typedef...
@@ -132,7 +133,7 @@ int devfs;
void transition(state_t);
state_t requested_transition = runcom;
-void setctty(char *);
+void setctty(const char *);
typedef struct init_session {
int se_index; /* index of entry in ttys file */
@@ -279,12 +280,17 @@ invalid:
char *s;
int i;
- iov[0].iov_base = "fstype";
- iov[0].iov_len = sizeof("fstype");
- iov[1].iov_base = "devfs";
- iov[1].iov_len = sizeof("devfs");
- iov[2].iov_base = "fspath";
- iov[2].iov_len = sizeof("fspath");
+ char _fstype[] = "fstype";
+ char _devfs[] = "devfs";
+ char _fspath[] = "fspath";
+ char _path_dev[]= _PATH_DEV;
+
+ iov[0].iov_base = _fstype;
+ iov[0].iov_len = sizeof(_fstype);
+ iov[1].iov_base = _devfs;
+ iov[1].iov_len = sizeof(_devfs);
+ iov[2].iov_base = _fspath;
+ iov[2].iov_len = sizeof(_fspath);
/*
* Try to avoid the trailing slash in _PATH_DEV.
* Be *very* defensive.
@@ -297,8 +303,8 @@ invalid:
iov[3].iov_base = s;
iov[3].iov_len = strlen(s) + 1;
} else {
- iov[3].iov_base = _PATH_DEV;
- iov[3].iov_len = sizeof(_PATH_DEV);
+ iov[3].iov_base = _path_dev;
+ iov[3].iov_len = sizeof(_path_dev);
}
nmount(iov, 4, 0);
if (s != NULL)
@@ -537,7 +543,7 @@ clear_session_logs(session_t *sp)
* Only called by children of init after forking.
*/
void
-setctty(char *name)
+setctty(const char *name)
{
int fd;
@@ -561,7 +567,7 @@ single_user(void)
pid_t pid, wpid;
int status;
sigset_t mask;
- char *shell = _PATH_BSHELL;
+ const char *shell = _PATH_BSHELL;
char *argv[2];
#ifdef SECURE
struct ttyent *typ;
@@ -645,7 +651,10 @@ single_user(void)
* Fire off a shell.
* If the default one doesn't work, try the Bourne shell.
*/
- argv[0] = "-sh";
+
+ char name[] = "-sh";
+
+ argv[0] = name;
argv[1] = 0;
execv(shell, argv);
emergency("can't exec %s for single user: %m", shell);
@@ -723,9 +732,13 @@ runcom(void)
setctty(_PATH_CONSOLE);
- argv[0] = "sh";
- argv[1] = _PATH_RUNCOM;
- argv[2] = runcom_mode == AUTOBOOT ? "autoboot" : 0;
+ char _sh[] = "sh";
+ char _path_runcom[] = _PATH_RUNCOM;
+ char _autoboot[] = "autoboot";
+
+ argv[0] = _sh;
+ argv[1] = _path_runcom;
+ argv[2] = runcom_mode == AUTOBOOT ? _autoboot : 0;
argv[3] = 0;
sigprocmask(SIG_SETMASK, &sa.sa_mask, (sigset_t *) 0);
@@ -871,7 +884,6 @@ find_session(pid_t pid)
char **
construct_argv(char *command)
{
- char *strk (char *);
int argc = 0;
char **argv = (char **) malloc(((strlen(command) + 1) / 2 + 1)
* sizeof (char *));
@@ -1477,12 +1489,15 @@ runshutdown(void)
/*
* Run the shutdown script.
*/
- argv[0] = "sh";
- argv[1] = _PATH_RUNDOWN;
- if (Reboot)
- argv[2] = "reboot";
- else
- argv[2] = "single";
+
+ char _sh[] = "sh";
+ char _reboot[] = "reboot";
+ char _single[] = "single";
+ char _path_rundown[] = _PATH_RUNDOWN;
+
+ argv[0] = _sh;
+ argv[1] = _path_rundown;
+ argv[2] = Reboot ? _reboot : _single;
argv[3] = 0;
sigprocmask(SIG_SETMASK, &sa.sa_mask, (sigset_t *) 0);
@@ -1568,8 +1583,8 @@ runshutdown(void)
return status;
}
-char *
-strk (char *p)
+static char *
+strk(char *p)
{
static char *t;
char *q;
OpenPOWER on IntegriCloud