]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Fix some Coverity isues
authorRoy Marples <roy@marples.name>
Sat, 30 May 2020 10:36:20 +0000 (10:36 +0000)
committerRoy Marples <roy@marples.name>
Sat, 30 May 2020 10:36:20 +0000 (10:36 +0000)
src/common.c
src/dhcp6.c
src/dhcpcd.c
src/if-linux.c
src/privsep.c

index 2586c41c5544732b35c550fe9c308bea604914f9..c60d98463a43894ad81230c726d6fafe92f59e92 100644 (file)
@@ -46,7 +46,7 @@ hwaddr_ntoa(const void *hwaddr, size_t hwlen, char *buf, size_t buflen)
        const unsigned char *hp, *ep;
        char *p;
 
-       if (buf == NULL)
+       if (buf == NULL || hwlen == 0)
                return NULL;
 
        if (hwlen * 3 > buflen) {
index a24277c30171a7dccf36336768f0f924ab5ff939..84c4b41ee6572f1e74f3adaac52e94043139976f 100644 (file)
@@ -3743,13 +3743,17 @@ dhcp6_openraw(void)
 
        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
index 0842e6d00f79c185eee674a09a1e8a9d7de0bac8..182b298912acd214a591a8a827a532e8a6e18cb0 100644 (file)
@@ -358,7 +358,7 @@ dhcpcd_daemonise(struct dhcpcd_ctx *ctx)
 
        /* 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)
index 42eeec2444bec13977dbfcf33532647dcf358206..348db0e6d92179664487f4f36699d3f49fda1632 100644 (file)
@@ -2046,8 +2046,8 @@ ip6_forwarding(const char *ifname)
                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 */
index 8e8325bf42f5d77efb04eceb1af20f5139bd0de4..ce4f056510813b0f0cc2dc8b656857e819716bbd 100644 (file)
@@ -248,7 +248,7 @@ ps_dostart(struct dhcpcd_ctx *ctx,
 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;