]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
[master] Fixes minor coverity issues
authorThomas Markwalder <tmark@isc.org>
Mon, 18 Dec 2017 18:50:03 +0000 (13:50 -0500)
committerThomas Markwalder <tmark@isc.org>
Mon, 18 Dec 2017 18:50:03 +0000 (13:50 -0500)
    Merges in rt46836

RELNOTES
client/dhc6.c
server/ddns.c
server/dhcpv6.c

index 6c1874739c89d6dcf234d5bfeaf60372b19f7db1..feab3810c4855091f91defc8027e10e2bb9f253b 100644 (file)
--- a/RELNOTES
+++ b/RELNOTES
@@ -273,6 +273,9 @@ dhcp-users@lists.isc.org.
   default).  You must compile with one or the other but not both.
   [ISC-Bugs #42446]
 
+- Corrected some minor coverity issues: CID 1426059, 1426058, and 1426057.
+  [ISC-Bugs #46836]
+
                        Changes since 4.3.6 (Bugs):
 
 - Corrected an issue where the server would return a client's previously
index b5a35f4be7fcc9a53a81f06ab2ad0a8e51d3805f..16a08380da900fa23b927c4711eec7f6f62ecc79 100644 (file)
@@ -5141,12 +5141,9 @@ do_decline6(void *input)
 decline_done:
        /* We here because we've exhausted our retry limits or
         * something else has gone wrong with the decline process.
-        * So let's just toss the existing lease and start over.
-        */
-       if (client->active_lease != NULL) {
-               dhc6_lease_destroy(&client->active_lease, MDL);
-               client->active_lease = NULL;
-       }
+        * So let's just toss the existing lease and start over. */
+       dhc6_lease_destroy(&client->active_lease, MDL);
+       client->active_lease = NULL;
 
        start_init6(client);
        return;
index 396eda5d3dce07b7036d19acb5508b918daa0b81..6ac79839abe5d01efb6c07c2352324b2485afc31 100644 (file)
@@ -1577,7 +1577,7 @@ ddns_fwd_srv_add3(dhcp_ddns_cb_t *ddns_cb,
 {
        isc_result_t result;
        const char *logstr = NULL;
-       char ddns_address[MAX_ADDRESS_STRING_LEN];
+       char ddns_address[MAX_ADDRESS_STRING_LEN+1];
 
 #if defined (DEBUG_DNS_UPDATES)
        log_info ("DDNS: ddns_fwd_srv_add3: %s eresult: %d",
@@ -1585,7 +1585,9 @@ ddns_fwd_srv_add3(dhcp_ddns_cb_t *ddns_cb,
 #endif
 
        /* Construct a printable form of the address for logging */
-       strcpy(ddns_address, piaddr(ddns_cb->address));
+       memset(ddns_address, 0x0, sizeof(ddns_address));
+       strncpy(ddns_address, piaddr(ddns_cb->address),
+                sizeof(ddns_address) - 1);
 
        switch(eresult) {
        case ISC_R_SUCCESS:
index bb613a74c959114c5adaf81dc7844ef676c27584..4fdb2cebbd1084412504fe098e463b7d0ccf45e3 100644 (file)
@@ -3295,7 +3295,7 @@ void shorten_lifetimes(struct reply_state *reply, struct iasubopt *lease,
                /* If address matches (and for PDs the prefix len matches)
                * we assume this is our subopt, so update the lifetimes */
                if (!memcmp(oc->data.data + addr_offset, &lease->addr, 16) &&
-                   (subopt_type != D6O_IA_PD ||
+                   (subopt_type != D6O_IAPREFIX ||
                     (oc->data.data[IASUBOPT_PD_PREFLEN_OFFSET] ==
                      lease->plen))) {
                        u_int32_t pref_life = getULong(oc->data.data +