changeset 5281:9f9a330f6e24 draft

Fix some Coverity isues
author Roy Marples <roy@marples.name>
date Sat, 30 May 2020 10:36:20 +0000
parents a986083da0ba
children 8afafcabcfa5
files src/common.c src/dhcp6.c src/dhcpcd.c src/if-linux.c src/privsep.c
diffstat 5 files changed, 11 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/common.c	Sat May 30 09:51:49 2020 +0000
+++ b/src/common.c	Sat May 30 10:36:20 2020 +0000
@@ -46,7 +46,7 @@
 	const unsigned char *hp, *ep;
 	char *p;
 
-	if (buf == NULL)
+	if (buf == NULL || hwlen == 0)
 		return NULL;
 
 	if (hwlen * 3 > buflen) {
--- a/src/dhcp6.c	Sat May 30 09:51:49 2020 +0000
+++ b/src/dhcp6.c	Sat May 30 10:36:20 2020 +0000
@@ -3743,13 +3743,17 @@
 
 	v = 1;
 	if (setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &v, sizeof(v)) == -1)
-		return -1;
+		goto errexit;
 
 	v = offsetof(struct udphdr, uh_sum);
 	if (setsockopt(fd, IPPROTO_IPV6, IPV6_CHECKSUM, &v, sizeof(v)) == -1)
-		return -1;
+		goto errexit;
 
 	return fd;
+
+errexit:
+	close(fd);
+	return -1;
 }
 
 int
--- a/src/dhcpcd.c	Sat May 30 09:51:49 2020 +0000
+++ b/src/dhcpcd.c	Sat May 30 10:36:20 2020 +0000
@@ -358,7 +358,7 @@
 
 	/* Don't use loginfo because this makes no sense in a log. */
 	if (!(loggetopts() & LOGERR_QUIET))
-		fprintf(stderr, "forked to background, child pid %d\n",
+		(void)fprintf(stderr, "forked to background, child pid %d\n",
 		    getpid());
 	i = EXIT_SUCCESS;
 	if (write(ctx->fork_fd, &i, sizeof(i)) == -1)
--- a/src/if-linux.c	Sat May 30 09:51:49 2020 +0000
+++ b/src/if-linux.c	Sat May 30 10:36:20 2020 +0000
@@ -2046,8 +2046,8 @@
 		return 0;
 	i = (int)strtoi(buf, NULL, 0, INT_MIN, INT_MAX, &error);
 	if (error != 0)
-		return -1;
-	return error != 0 ? 0 : i;
+		return 0;
+	return i;
 }
 
 #endif /* INET6 */
--- a/src/privsep.c	Sat May 30 09:51:49 2020 +0000
+++ b/src/privsep.c	Sat May 30 10:36:20 2020 +0000
@@ -248,7 +248,7 @@
 errexit:
 	/* Failure to start root or inet processes is fatal. */
 	if (priv_fd == &ctx->ps_root_fd || priv_fd == &ctx->ps_inet_fd)
-		ps_sendcmd(ctx, *priv_fd, PS_STOP, 0, NULL, 0);
+		(void)ps_sendcmd(ctx, *priv_fd, PS_STOP, 0, NULL, 0);
 	shutdown(*priv_fd, SHUT_RDWR);
 	*priv_fd = -1;
 	return -1;