summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rc/rc-logger.c14
-rw-r--r--src/rc/rc.c12
-rw-r--r--src/rc/runscript.c3
-rw-r--r--src/rc/start-stop-daemon.c4
4 files changed, 21 insertions, 12 deletions
diff --git a/src/rc/rc-logger.c b/src/rc/rc-logger.c
index f032077..0f2c1f9 100644
--- a/src/rc/rc-logger.c
+++ b/src/rc/rc-logger.c
@@ -100,8 +100,9 @@ write_log(int logfd, const char *buffer, size_t bytes)
break;
}
- if (! in_escape) {
- write(logfd, p++, 1);
+ if (!in_escape) {
+ if (write(logfd, p++, 1) == -1)
+ eerror("write: %s", strerror(errno));
continue;
}
@@ -128,7 +129,8 @@ rc_logger_close(void)
int sig = SIGTERM;
if (signal_pipe[1] > -1) {
- write(signal_pipe[1], &sig, sizeof(sig));
+ if (write(signal_pipe[1], &sig, sizeof(sig)) == -1)
+ eerror("write: %s", strerror(errno));
close(signal_pipe[1]);
signal_pipe[1] = -1;
}
@@ -218,7 +220,8 @@ rc_logger_open(const char *level)
if (fd[1].revents & (POLLIN | POLLHUP)) {
memset(buffer, 0, BUFSIZ);
bytes = read(rc_logger_tty, buffer, BUFSIZ);
- write(STDOUT_FILENO, buffer, bytes);
+ if (write(STDOUT_FILENO, buffer, bytes) == -1)
+ eerror("write: %s", strerror(errno));
if (log)
write_log(fileno (log), buffer, bytes);
@@ -255,7 +258,8 @@ rc_logger_open(const char *level)
/* Try and cat our new logfile to a more permament location
and then punt it */
- system(MOVELOG);
+ if (system(MOVELOG) == -1)
+ eerror("system: %s: %s", MOVELOG, strerror(errno));
exit(0);
/* NOTREACHED */
diff --git a/src/rc/rc.c b/src/rc/rc.c
index 9b4a7e5..405ea54 100644
--- a/src/rc/rc.c
+++ b/src/rc/rc.c
@@ -191,8 +191,10 @@ proc_getent(const char *ent)
}
memset(proc, 0, sizeof(proc));
- fgets(proc, sizeof(proc), fp);
- if (*proc && (p = strstr(proc, ent))) {
+ p = fgets(proc, sizeof(proc), fp);
+ if (p == NULL)
+ eerror("fgets: %s", strerror(errno));
+ else if (*proc && (p = strstr(proc, ent))) {
i = p - proc;
if (i == '\0' || proc[i - 1] == ' ') {
p += strlen(ent);
@@ -234,7 +236,8 @@ read_key(bool block)
termios.c_cc[VTIME] = 0;
}
tcsetattr(fd, TCSANOW, &termios);
- read(fd, &c, 1);
+ if (read(fd, &c, 1) == -1)
+ eerror("read: %s", strerror(errno));
tcsetattr(fd, TCSANOW, termios_orig);
return c;
}
@@ -840,7 +843,8 @@ main(int argc, char **argv)
argv++;
/* Change dir to / to ensure all scripts don't use stuff in pwd */
- chdir("/");
+ if (chdir("/") == -1)
+ eerror("chdir: %s", strerror(errno));
/* Ensure our environment is pure
* Also, add our configuration to it */
diff --git a/src/rc/runscript.c b/src/rc/runscript.c
index 5dab676..58067a7 100644
--- a/src/rc/runscript.c
+++ b/src/rc/runscript.c
@@ -1106,7 +1106,8 @@ runscript(int argc, char **argv)
usage(EXIT_FAILURE);
/* Change dir to / to ensure all init scripts don't use stuff in pwd */
- chdir("/");
+ if (chdir("/") == -1)
+ eerror("chdir: %s", strerror(errno));
if ((runlevel = xstrdup(getenv("RC_RUNLEVEL"))) == NULL) {
env_filter();
diff --git a/src/rc/start-stop-daemon.c b/src/rc/start-stop-daemon.c
index 8237e1e..1952154 100644
--- a/src/rc/start-stop-daemon.c
+++ b/src/rc/start-stop-daemon.c
@@ -960,9 +960,9 @@ start_stop_daemon(int argc, char **argv)
if (interpreted && !pidfile) {
fp = fopen(exec_file, "r");
if (fp) {
- fgets(line, sizeof(line), fp);
+ p = fgets(line, sizeof(line), fp);
fclose(fp);
- if (line[0] == '#' && line[1] == '!') {
+ if (p != NULL && line[0] == '#' && line[1] == '!') {
p = line + 2;
/* Strip leading spaces */
while (*p == ' ' || *p == '\t')