summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2009-01-29 13:01:29 +0000
committerRoy Marples <roy@marples.name>2009-01-29 13:01:29 +0000
commitf22fb9b1c1232dd0385a00d7eb8ad0dbc172dc07 (patch)
treef886e73a43b66ad78b3e4be0d6e15d322a586427
parented913a59775402a9ce66067858d7280fe4506176 (diff)
downloaddhcpcd-f22fb9b1c1232dd0385a00d7eb8ad0dbc172dc07.tar.xz
Clean up compiler warnings from overly pedantic checking.
-rw-r--r--bind.c6
-rw-r--r--common.c3
-rw-r--r--dhcpcd.c18
-rw-r--r--signals.c4
4 files changed, 20 insertions, 11 deletions
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 <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;
}