From: Roy Marples Date: Thu, 29 Jan 2009 13:01:29 +0000 (+0000) Subject: Clean up compiler warnings from overly pedantic checking. X-Git-Tag: v5.0.0~88 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f22fb9b1c1232dd0385a00d7eb8ad0dbc172dc07;p=thirdparty%2Fdhcpcd.git Clean up compiler warnings from overly pedantic checking. --- diff --git a/bind.c b/bind.c index 1b34ffd6..483c7462 100644 --- a/bind.c +++ b/bind.c @@ -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; } diff --git a/common.c b/common.c index 71f4e805..48f51a4e 100644 --- a/common.c +++ b/common.c @@ -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'; diff --git a/dhcpcd.c b/dhcpcd.c index 8004534a..f0aaf1bc 100644 --- a/dhcpcd.c +++ b/dhcpcd.c @@ -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); diff --git a/signals.c b/signals.c index 64831fae..0007b5d2 100644 --- a/signals.c +++ b/signals.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #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; }