]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2111. [bug] Fix a number of errors reported by Coverity.
authorMark Andrews <marka@isc.org>
Thu, 7 Dec 2006 04:52:58 +0000 (04:52 +0000)
committerMark Andrews <marka@isc.org>
Thu, 7 Dec 2006 04:52:58 +0000 (04:52 +0000)
                        [RT #16507]

CHANGES
bin/named/controlconf.c
bin/named/lwdgrbn.c
lib/bind/irs/irp_ng.c
lib/bind/isc/ctl_srvr.c
lib/dns/master.c
lib/dns/sdb.c
lib/isc/unix/entropy.c
lib/isccc/cc.c

diff --git a/CHANGES b/CHANGES
index 75d4dac8fb3a0a70e008269c211d9763a009df57..0a7be546838157bb1fafa10ec920cf0f5d80d5ae 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2111.  [bug]           Fix a number of errors reported by Coverity.
+                       [RT #16507]
+
 2110.  [bug]           "minimal-response yes;" interacted badly with BIND 8
                        priming queries. [RT #16491]
 
index ba3b381ea2d3faadddc967cb56ae06e11e35e47c..f8d8c8009b974b6ea560375e779290343a3f5ae7 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: controlconf.c,v 1.28.2.14 2006/03/01 01:34:05 marka Exp $ */
+/* $Id: controlconf.c,v 1.28.2.15 2006/12/07 04:52:57 marka Exp $ */
 
 #include <config.h>
 
@@ -687,7 +687,7 @@ controlkeylist_fromcfg(const cfg_obj_t *keylist, isc_mem_t *mctx,
        char *newstr = NULL;
        const char *str;
        const cfg_obj_t *obj;
-       controlkey_t *key = NULL;
+       controlkey_t *key;
 
        for (element = cfg_list_first(keylist);
             element != NULL;
@@ -706,7 +706,6 @@ controlkeylist_fromcfg(const cfg_obj_t *keylist, isc_mem_t *mctx,
                key->secret.length = 0;
                ISC_LINK_INIT(key, link);
                ISC_LIST_APPEND(*keyids, key, link);
-               key = NULL;
                newstr = NULL;
        }
        return (ISC_R_SUCCESS);
@@ -714,8 +713,6 @@ controlkeylist_fromcfg(const cfg_obj_t *keylist, isc_mem_t *mctx,
  cleanup:
        if (newstr != NULL)
                isc_mem_free(mctx, newstr);
-       if (key != NULL)
-               isc_mem_put(mctx, key, sizeof(*key));
        free_controlkeylist(keyids, mctx);
        return (ISC_R_NOMEMORY);
 }
index 8ba89a21d7488074f8f3623905991fa204b68e65..7f0b043e466354f0a017e5a91d66da8929f30f3c 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: lwdgrbn.c,v 1.11.2.3 2006/01/04 23:50:16 marka Exp $ */
+/* $Id: lwdgrbn.c,v 1.11.2.4 2006/12/07 04:52:57 marka Exp $ */
 
 #include <config.h>
 
@@ -183,8 +183,6 @@ iterate_node(lwres_grbnresponse_t *grbn, dns_db_t *db, dns_dbnode_t *node,
                isc_mem_put(mctx, oldlens, oldsize * sizeof(*oldlens));
        if (newrdatas != NULL)
                isc_mem_put(mctx, newrdatas, used * sizeof(*oldrdatas));
-       if (newlens != NULL)
-               isc_mem_put(mctx, newlens, used * sizeof(*oldlens));
        return (result);
 }
 
index 6906f1d2210ba4850a7674fb0d9b6ac8b5b2078e..d12a0a7464b6823a1c2f596e9a8b7674cda57dc4 100644 (file)
@@ -16,7 +16,7 @@
  */
 
 #if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: irp_ng.c,v 1.1.2.1 2004/03/09 09:17:31 marka Exp $";
+static const char rcsid[] = "$Id: irp_ng.c,v 1.1.2.2 2006/12/07 04:52:57 marka Exp $";
 #endif
 
 /* Imports */
@@ -239,14 +239,14 @@ ng_test(struct irs_ng *this, const char *name,
        }
 
        if (irs_irp_send_command(pvt->girpdata, "innetgr %s", body) == 0) {
-               memput(body, bodylen);
-
                code = irs_irp_read_response(pvt->girpdata, text, sizeof text);
                if (code == IRPD_GETNETGR_MATCHES) {
                        rval = 1;
                }
        }
 
+       memput(body, bodylen);
+
        return (rval);
 }
 
index 91b9e9aeb6f796032ea95e6887f32b7427e7a590..377065b17b9d95a37e0e51f3237f3947095fbbc3 100644 (file)
@@ -1,5 +1,5 @@
 #if !defined(lint) && !defined(SABER)
-static const char rcsid[] = "$Id: ctl_srvr.c,v 1.3.2.4 2004/03/17 01:15:48 marka Exp $";
+static const char rcsid[] = "$Id: ctl_srvr.c,v 1.3.2.5 2006/12/07 04:52:57 marka Exp $";
 #endif /* not lint */
 
 /*
@@ -564,7 +564,7 @@ static void
 ctl_readable(evContext lev, void *uap, int fd, int evmask) {
        static const char me[] = "ctl_readable";
        struct ctl_sess *sess = uap;
-       struct ctl_sctx *ctx = sess->ctx;
+       struct ctl_sctx *ctx;
        char *eos, tmp[MAX_NTOP];
        ssize_t n;
 
@@ -572,6 +572,8 @@ ctl_readable(evContext lev, void *uap, int fd, int evmask) {
        REQUIRE(fd >= 0);
        REQUIRE(evmask == EV_READ);
        REQUIRE(sess->state == reading || sess->state == reading_data);
+
+       ctx = sess->ctx;
        evTouchIdleTimer(lev, sess->rdtiID);
        if (!allocated_p(sess->inbuf) &&
            ctl_bufget(&sess->inbuf, ctx->logger) < 0) {
index 01cae359f013d969e104c1f1e70365808b0292fb..62a101d58a1471eaf217ec368b7d3a79bc98ae4e 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: master.c,v 1.122.2.9 2004/03/09 06:11:03 marka Exp $ */
+/* $Id: master.c,v 1.122.2.10 2006/12/07 04:52:57 marka Exp $ */
 
 #include <config.h>
 
@@ -1040,7 +1040,8 @@ load(dns_loadctx_t *lctx) {
                                        isc_mem_free(mctx, gtype);
                                if (rhs != NULL)
                                        isc_mem_free(mctx, rhs);
-                               /* range */
+                               range = lhs = gtype = rhs = NULL;
+                               /* RANGE */
                                GETTOKEN(lctx->lex, 0, &token, ISC_FALSE);
                                range = isc_mem_strdup(mctx,
                                                     token.value.as_pointer);
index c810cd4236b428b63af4fbddde9533810fc6a608..9e3e81caab977038c56018dbd395c33fea1d0591 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: sdb.c,v 1.35.2.6 2004/07/22 04:04:41 marka Exp $ */
+/* $Id: sdb.c,v 1.35.2.7 2006/12/07 04:52:57 marka Exp $ */
 
 #include <config.h>
 
@@ -875,7 +875,8 @@ find(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version,
 
                xresult = dns_name_copy(xname, foundname, NULL);
                if (xresult != ISC_R_SUCCESS) {
-                       destroynode(node);
+                       if (node != NULL)
+                               destroynode(node);
                        if (dns_rdataset_isassociated(rdataset))
                                dns_rdataset_disassociate(rdataset);
                        return (DNS_R_BADDB);
index 9c52b4dc17509b3c068e1582cb0b8548359dad97..9f2c189acac969d0866b33cd6bda2ec5d2d18d60 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: entropy.c,v 1.60.2.6 2005/07/12 05:47:53 marka Exp $ */
+/* $Id: entropy.c,v 1.60.2.7 2006/12/07 04:52:58 marka Exp $ */
 
 /*
  * This is the system depenedent part of the ISC entropy API.
@@ -349,9 +349,6 @@ isc_entropy_createfilesource(isc_entropy_t *ent, const char *fname) {
        close(fd);
 
  errout:
-       if (source != NULL)
-               isc_mem_put(ent->mctx, source, sizeof(isc_entropysource_t));
-
        UNLOCK(&ent->lock);
 
        return (ret);
index d3b1dace8cf805ec18a242710bcc973be24d6adc..e756c7a3016a123fa766ff87d9bac39dfb1b5536 100644 (file)
@@ -16,7 +16,7 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: cc.c,v 1.4.2.5 2004/03/09 06:12:25 marka Exp $ */
+/* $Id: cc.c,v 1.4.2.6 2006/12/07 04:52:58 marka Exp $ */
 
 #include <config.h>
 
@@ -464,12 +464,21 @@ createmessage(isc_uint32_t version, const char *from, const char *to,
        result = ISC_R_NOMEMORY;
 
        _ctrl = isccc_alist_create();
+       if (_ctrl == NULL)
+               goto bad;
+       if (isccc_alist_define(alist, "_ctrl", _ctrl) == NULL) {
+               isccc_sexpr_free(&_ctrl);
+               goto bad;
+       }
+
        _data = isccc_alist_create();
-       if (_ctrl == NULL || _data == NULL)
+       if (_data == NULL)
                goto bad;
-       if (isccc_alist_define(alist, "_ctrl", _ctrl) == NULL ||
-           isccc_alist_define(alist, "_data", _data) == NULL)
+       if (isccc_alist_define(alist, "_data", _data) == NULL) {
+               isccc_sexpr_free(&_data);
                goto bad;
+       }
+
        if (isccc_cc_defineuint32(_ctrl, "_ser", serial) == NULL ||
            isccc_cc_defineuint32(_ctrl, "_tim", now) == NULL ||
            (want_expires &&