diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/rc/rc-logger.c | 14 | ||||
-rw-r--r-- | src/rc/rc.c | 12 | ||||
-rw-r--r-- | src/rc/runscript.c | 3 | ||||
-rw-r--r-- | src/rc/start-stop-daemon.c | 4 |
4 files changed, 21 insertions, 12 deletions
diff --git a/src/rc/rc-logger.c b/src/rc/rc-logger.c index f0320778..0f2c1f95 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 9b4a7e5c..405ea542 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 5dab6763..58067a71 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 8237e1e8..1952154a 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') |