diff options
| author | Roy Marples <roy@marples.name> | 2009-01-29 13:01:29 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2009-01-29 13:01:29 +0000 |
| commit | f22fb9b1c1232dd0385a00d7eb8ad0dbc172dc07 (patch) | |
| tree | f886e73a43b66ad78b3e4be0d6e15d322a586427 | |
| parent | ed913a59775402a9ce66067858d7280fe4506176 (diff) | |
| download | dhcpcd-f22fb9b1c1232dd0385a00d7eb8ad0dbc172dc07.tar.xz | |
Clean up compiler warnings from overly pedantic checking.
| -rw-r--r-- | bind.c | 6 | ||||
| -rw-r--r-- | common.c | 3 | ||||
| -rw-r--r-- | dhcpcd.c | 18 | ||||
| -rw-r--r-- | signals.c | 4 |
4 files changed, 20 insertions, 11 deletions
@@ -79,7 +79,8 @@ daemonise(void) setsid(); /* Notify parent it's safe to exit as we've detached. */ close(sidpipe[0]); - write(sidpipe[1], &buf, 1); + if (write(sidpipe[1], &buf, 1) == -1) + syslog(LOG_ERR, "failed to notify parent: %m"); close(sidpipe[1]); if ((fd = open(_PATH_DEVNULL, O_RDWR, 0)) != -1) { dup2(fd, STDIN_FILENO); @@ -93,7 +94,8 @@ daemonise(void) signal_reset(); /* Wait for child to detach */ close(sidpipe[1]); - read(sidpipe[0], &buf, 1); + if (read(sidpipe[0], &buf, 1) == -1) + syslog(LOG_ERR, "failed to read child: %m"); close(sidpipe[0]); break; } @@ -94,7 +94,8 @@ again: } p = lbuf + last; memset(p, 0, BUFSIZ); - fgets(p, BUFSIZ, fp); + if (fgets(p, BUFSIZ, fp) == NULL) + break; last += strlen(p); if (last != 0 && lbuf[last - 1] == '\n') { lbuf[last - 1] = '\0'; @@ -116,16 +116,15 @@ static pid_t read_pid(void) { FILE *fp; - pid_t pid = 0; + pid_t pid; if ((fp = fopen(pidfile, "r")) == NULL) { errno = ENOENT; return 0; } - - fscanf(fp, "%d", &pid); + if (fscanf(fp, "%d", &pid) != 1) + pid = 0; fclose(fp); - return pid; } @@ -1141,7 +1140,9 @@ handle_args(struct fd_list *fd, int argc, char **argv) if (argc == 1) { for (ifp = ifaces; ifp; ifp = ifp->next) len++; - write(fd->fd, &len, sizeof(len)); + len = write(fd->fd, &len, sizeof(len)); + if (len != sizeof(len)) + return -1; for (ifp = ifaces; ifp; ifp = ifp->next) send_interface(fd->fd, ifp); return 0; @@ -1152,7 +1153,9 @@ handle_args(struct fd_list *fd, int argc, char **argv) if (strcmp(argv[opt], ifp->name) == 0) len++; } - write(fd->fd, &len, sizeof(len)); + len = write(fd->fd, &len, sizeof(len)); + if (len != sizeof(len)) + return -1; opt = 0; while (argv[++opt] != NULL) { for (ifp = ifaces; ifp; ifp = ifp->next) @@ -1321,7 +1324,8 @@ main(int argc, char **argv) options |= DHCPCD_MASTER; } - chdir("/"); + if (chdir("/") == -1) + syslog(LOG_ERR, "failed to chdir to /: %m"); umask(022); atexit(cleanup); @@ -31,6 +31,7 @@ #include <errno.h> #include <signal.h> #include <string.h> +#include <syslog.h> #include <unistd.h> #include "common.h" @@ -51,7 +52,8 @@ signal_handler(int sig) { int serrno = errno; - write(signal_pipe[1], &sig, sizeof(sig)); + if (write(signal_pipe[1], &sig, sizeof(sig)) != sizeof(sig)) + syslog(LOG_ERR, "failed to write signal %d: %m", sig); /* Restore errno */ errno = serrno; } |
