From: Mark Andrews Date: Thu, 7 Dec 2006 04:52:58 +0000 (+0000) Subject: 2111. [bug] Fix a number of errors reported by Coverity. X-Git-Tag: v9.2.0b1^2~181 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=6f2339756ea7b445b6df2acef5b8bd8e4444a2e1;p=thirdparty%2Fbind9.git 2111. [bug] Fix a number of errors reported by Coverity. [RT #16507] --- diff --git a/CHANGES b/CHANGES index 75d4dac8fb3..0a7be546838 100644 --- 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] diff --git a/bin/named/controlconf.c b/bin/named/controlconf.c index ba3b381ea2d..f8d8c8009b9 100644 --- a/bin/named/controlconf.c +++ b/bin/named/controlconf.c @@ -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 @@ -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); } diff --git a/bin/named/lwdgrbn.c b/bin/named/lwdgrbn.c index 8ba89a21d74..7f0b043e466 100644 --- a/bin/named/lwdgrbn.c +++ b/bin/named/lwdgrbn.c @@ -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 @@ -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); } diff --git a/lib/bind/irs/irp_ng.c b/lib/bind/irs/irp_ng.c index 6906f1d2210..d12a0a7464b 100644 --- a/lib/bind/irs/irp_ng.c +++ b/lib/bind/irs/irp_ng.c @@ -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); } diff --git a/lib/bind/isc/ctl_srvr.c b/lib/bind/isc/ctl_srvr.c index 91b9e9aeb6f..377065b17b9 100644 --- a/lib/bind/isc/ctl_srvr.c +++ b/lib/bind/isc/ctl_srvr.c @@ -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) { diff --git a/lib/dns/master.c b/lib/dns/master.c index 01cae359f01..62a101d58a1 100644 --- a/lib/dns/master.c +++ b/lib/dns/master.c @@ -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 @@ -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); diff --git a/lib/dns/sdb.c b/lib/dns/sdb.c index c810cd4236b..9e3e81caab9 100644 --- a/lib/dns/sdb.c +++ b/lib/dns/sdb.c @@ -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 @@ -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); diff --git a/lib/isc/unix/entropy.c b/lib/isc/unix/entropy.c index 9c52b4dc175..9f2c189acac 100644 --- a/lib/isc/unix/entropy.c +++ b/lib/isc/unix/entropy.c @@ -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); diff --git a/lib/isccc/cc.c b/lib/isccc/cc.c index d3b1dace8cf..e756c7a3016 100644 --- a/lib/isccc/cc.c +++ b/lib/isccc/cc.c @@ -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 @@ -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 &&