static void
free_keytable(keyinfo_t **keytable_p) {
keyinfo_t *keytable = *keytable_p;
+ *keytable_p = NULL;
keyinfo_t *ki;
int i;
}
isc_mem_put(mctx, keytable, sizeof(keyinfo_t) * nkey);
- *keytable_p = NULL;
}
/*
void
named_controls_destroy(named_controls_t **ctrlsp) {
named_controls_t *controls = *ctrlsp;
+ *ctrlsp = NULL;
REQUIRE(ISC_LIST_EMPTY(controls->listeners));
isccc_symtab_destroy(&controls->symtab);
isc_mem_put(controls->server->mctx, controls, sizeof(*controls));
- *ctrlsp = NULL;
}
static char *
nsu_strsep(char **stringp, const char *delim) {
char *string = *stringp;
+ *stringp = NULL;
char *s;
const char *d;
char sc, dc;
}
}
}
- *stringp = NULL;
return (string);
}
REQUIRE(instp != NULL);
inst = *instp;
+ *instp = NULL;
if (inst == NULL)
return;
isc_task_detach(&inst->task);
MEM_PUT_AND_DETACH(inst);
-
- *instp = NULL;
}
/*
* The name is empty. Delete it.
*/
- result = kill_name(&name, DNS_EVENT_ADBEXPIRED);
*namep = NULL;
+ result = kill_name(&name, DNS_EVENT_ADBEXPIRED);
/*
* Our caller, or one of its callers, will be calling check_exit() at
/*
* The entry is not in use. Delete it.
*/
+ *entryp = NULL;
DP(DEF_LEVEL, "killing entry %p", entry);
INSIST(ISC_LINK_LINKED(entry, plink));
result = unlink_entry(adb, entry);
free_adbentry(adb, &entry);
if (result)
dec_adb_irefcnt(adb);
- *entryp = NULL;
return (result);
}
REQUIRE(DNS_ADB_VALID(adb));
REQUIRE(addrp != NULL);
addr = *addrp;
+ *addrp = NULL;
REQUIRE(DNS_ADBADDRINFO_VALID(addr));
entry = addr->entry;
REQUIRE(DNS_ADBENTRY_VALID(entry));
- *addrp = NULL;
overmem = isc_mem_isovermem(adb->mctx);
bucket = addr->entry->lock_bucket;
REQUIRE(bcp != NULL && *bcp != NULL);
bc = *bcp;
+ *bcp = NULL;
dns_badcache_flush(bc);
isc_mutex_destroy(&bc->lock);
isc_mem_put(bc->mctx, bc->table, sizeof(dns_bcentry_t *) * bc->size);
isc_mem_putanddetach(&bc->mctx, bc, sizeof(dns_badcache_t));
- *bcp = NULL;
}
static isc_result_t
REQUIRE(byaddrp != NULL);
byaddr = *byaddrp;
+ *byaddrp = NULL;
REQUIRE(VALID_BYADDR(byaddr));
REQUIRE(byaddr->event == NULL);
REQUIRE(byaddr->task == NULL);
isc_mutex_destroy(&byaddr->lock);
byaddr->magic = 0;
isc_mem_putanddetach(&byaddr->mctx, byaddr, sizeof(*byaddr));
-
- *byaddrp = NULL;
}
REQUIRE(cachep != NULL);
cache = *cachep;
- REQUIRE(VALID_CACHE(cache));
*cachep = NULL;
+ REQUIRE(VALID_CACHE(cache));
if (isc_refcount_decrement(&cache->references) == 1) {
cache->cleaner.overmem = false;
REQUIRE(DNS_CATZ_ZONE_VALID(zone));
REQUIRE(entryp != NULL);
entry = *entryp;
- REQUIRE(DNS_CATZ_ENTRY_VALID(entry));
-
*entryp = NULL;
+ REQUIRE(DNS_CATZ_ENTRY_VALID(entry));
if (isc_refcount_decrement(&entry->refs) == 1) {
isc_mem_t *mctx = zone->catzs->mctx;
REQUIRE(rdatasetp != NULL);
rdataset = *rdatasetp;
+ *rdatasetp = NULL;
REQUIRE(rdataset != NULL);
if (dns_rdataset_isassociated(rdataset))
dns_rdataset_disassociate(rdataset);
isc_mem_put(mctx, rdataset, sizeof(*rdataset));
-
- *rdatasetp = NULL;
}
static void
REQUIRE(dbtablep != NULL);
dbtable = *dbtablep;
- REQUIRE(VALID_DBTABLE(dbtable));
*dbtablep = NULL;
+ REQUIRE(VALID_DBTABLE(dbtable));
if (isc_refcount_decrement(&dbtable->references) == 1) {
dbtable_free(dbtable);
void
dns_difftuple_free(dns_difftuple_t **tp) {
dns_difftuple_t *t = *tp;
+ *tp = NULL;
isc_mem_t *mctx;
REQUIRE(DNS_DIFFTUPLE_VALID(t));
mctx = t->mctx;
isc_mem_free(mctx, t);
isc_mem_detach(&mctx);
- *tp = NULL;
}
isc_result_t
*/
static void
deref_portentry(dns_dispatch_t *disp, dispportentry_t **portentryp) {
- dispportentry_t *portentry = *portentryp;
dns_qid_t *qid;
+ dispportentry_t *portentry = *portentryp;
+ *portentryp = NULL;
REQUIRE(disp->port_table != NULL);
REQUIRE(portentry != NULL);
isc_mempool_put(disp->portpool, portentry);
UNLOCK(&qid->lock);
}
-
- /*
- * XXXWPK TODO: is it really necessary?
- * Set '*portentryp' to NULL inside the lock so that
- * dispsock->portentry does not change in socket_search.
- */
- *portentryp = NULL;
}
/*%
REQUIRE(dispsockp != NULL && *dispsockp != NULL);
dispsock = *dispsockp;
+ *dispsockp = NULL;
REQUIRE(!ISC_LINK_LINKED(dispsock, link));
disp->nsockets--;
if (dispsock->task != NULL)
isc_task_detach(&dispsock->task);
isc_mempool_put(disp->mgr->spool, dispsock);
-
- *dispsockp = NULL;
}
/*%
REQUIRE(qidp != NULL);
qid = *qidp;
+ *qidp = NULL;
REQUIRE(VALID_QID(qid));
- *qidp = NULL;
qid->magic = 0;
isc_mem_put(mctx, qid->qid_table,
qid->qid_nbuckets * sizeof(dns_displist_t));
REQUIRE(dsetp != NULL && *dsetp != NULL);
dset = *dsetp;
+ *dsetp = NULL;
for (i = 0; i < dset->ndisp; i++)
dns_dispatch_detach(&(dset->dispatches[i]));
isc_mem_put(dset->mctx, dset->dispatches,
sizeof(dns_dispatch_t *) * dset->ndisp);
isc_mutex_destroy(&dset->lock);
isc_mem_putanddetach(&dset->mctx, dset, sizeof(dns_dispatchset_t));
-
- *dsetp = NULL;
}
void
isc_mem_t *mctx;
iterator = *iteratorp;
+ *iteratorp = NULL;
rpsdb = (rpsdb_t *)iterator->db;
REQUIRE(VALID_RPSDB(rpsdb));
mctx = iterator->db->mctx;
dns_db_detachnode(iterator->db, &iterator->node);
isc_mem_put(mctx, iterator, sizeof(rpsdb_rdatasetiter_t));
- *iteratorp = NULL;
}
static isc_result_t
REQUIRE(dkp != NULL && *dkp != NULL);
dk = *dkp;
+ *dkp = NULL;
if (dk->key != NULL)
dst_key_free(&dk->key);
isc_mem_put(mctx, dk, sizeof(dns_dnsseckey_t));
- *dkp = NULL;
}
void
REQUIRE(dp != NULL && *dp != NULL);
d = *dp;
+ *dp = NULL;
if (d->msg != NULL)
dns_message_destroy(&d->msg);
dnstap__dnstap__free_unpacked(d->frame, NULL);
isc_mem_putanddetach(&d->mctx, d, sizeof(*d));
-
- *dp = NULL;
}
REQUIRE(dctxp != NULL && VALID_CTX(*dctxp));
dctx = *dctxp;
+ *dctxp = NULL;
INSIST(dctx->key->func->destroyctx != NULL);
dctx->key->func->destroyctx(dctx);
if (dctx->key != NULL)
dst_key_free(&dctx->key);
dctx->magic = 0;
isc_mem_putanddetach(&dctx->mctx, dctx, sizeof(dst_context_t));
- *dctxp = NULL;
}
isc_result_t
REQUIRE(impp != NULL && *impp != NULL);
imp = *impp;
+ *impp = NULL;
isc_mem_free(imp->mctx, imp->name);
isc_mem_putanddetach(&imp->mctx, imp, sizeof(dyndb_implementation_t));
-
- *impp = NULL;
}
#elif _WIN32
static isc_result_t
REQUIRE(impp != NULL && *impp != NULL);
imp = *impp;
+ *impp = NULL;
isc_mem_free(imp->mctx, imp->name);
isc_mem_putanddetach(&imp->mctx, imp, sizeof(dyndb_implementation_t));
-
- *impp = NULL;
}
#else /* HAVE_DLFCN_H || _WIN32 */
static isc_result_t
REQUIRE(fwdtablep != NULL && VALID_FWDTABLE(*fwdtablep));
fwdtable = *fwdtablep;
+ *fwdtablep = NULL;
dns_rbt_destroy(&fwdtable->table);
isc_rwlock_destroy(&fwdtable->rwlock);
fwdtable->magic = 0;
isc_mem_putanddetach(&fwdtable->mctx, fwdtable, sizeof(dns_fwdtable_t));
-
- *fwdtablep = NULL;
}
/***
void
dns_journal_destroy(dns_journal_t **journalp) {
dns_journal_t *j = *journalp;
+ *journalp = NULL;
REQUIRE(DNS_JOURNAL_VALID(j));
j->it.result = ISC_R_FAILURE;
(void)isc_stdio_close(j->fp);
j->magic = 0;
isc_mem_putanddetach(&j->mctx, j, sizeof(*j));
- *journalp = NULL;
}
/*
REQUIRE(lookupp != NULL);
lookup = *lookupp;
+ *lookupp = NULL;
REQUIRE(VALID_LOOKUP(lookup));
REQUIRE(lookup->event == NULL);
REQUIRE(lookup->task == NULL);
isc_mutex_destroy(&lookup->lock);
lookup->magic = 0;
isc_mem_putanddetach(&lookup->mctx, lookup, sizeof(*lookup));
-
- *lookupp = NULL;
}
REQUIRE(lctxp != NULL);
lctx = *lctxp;
- REQUIRE(DNS_LCTX_VALID(lctx));
-
*lctxp = NULL;
+ REQUIRE(DNS_LCTX_VALID(lctx));
if (isc_refcount_decrement(&lctx->references) == 1) {
loadctx_destroy(lctx);
REQUIRE(dctxp != NULL);
dctx = *dctxp;
- REQUIRE(DNS_DCTX_VALID(dctx));
-
*dctxp = NULL;
+ REQUIRE(DNS_DCTX_VALID(dctx));
if (isc_refcount_decrement(&dctx->references) == 1) {
dumpctx_destroy(dctx);
REQUIRE(DNS_MESSAGE_VALID(msg));
REQUIRE(itemp != NULL && *itemp != NULL);
item = *itemp;
+ *itemp = NULL;
REQUIRE(!ISC_LINK_LINKED(item, link));
REQUIRE(ISC_LIST_HEAD(item->list) == NULL);
- *itemp = NULL;
if (dns_name_dynamic(item))
dns_name_free(item, msg->mctx);
isc_mempool_put(msg->namepool, item);
REQUIRE(DNS_PEERLIST_VALID(*list));
l = *list;
+ *list = NULL;
isc_refcount_destroy(&l->refs);
l->magic = 0;
isc_mem_put(l->mem, l, sizeof(*l));
-
- *list = NULL;
}
void
REQUIRE(DNS_PEER_VALID(*peer));
p = *peer;
+ *peer = NULL;
isc_refcount_destroy(&p->refs);
sizeof(*p->transfer_source));
isc_mem_put(mem, p, sizeof(*p));
-
- *peer = NULL;
}
isc_result_t
if (rbt->root != NULL)
return (ISC_R_QUOTA);
+ *rbtp = NULL;
+
INSIST(rbt->nodecount == 0);
rbt->mmap_location = NULL;
rbt->magic = 0;
isc_mem_putanddetach(&rbt->mctx, rbt, sizeof(*rbt));
- *rbtp = NULL;
return (ISC_R_SUCCESS);
}
static void
freenode(dns_rbt_t *rbt, dns_rbtnode_t **nodep) {
dns_rbtnode_t *node = *nodep;
+ *nodep = NULL;
if (node->is_mmapped == 0) {
isc_mem_put(rbt->mctx, node, NODE_SIZE(node));
}
- *nodep = NULL;
rbt->nodecount--;
}
REQUIRE(requestmgrp != NULL);
requestmgr = *requestmgrp;
+ *requestmgrp = NULL;
REQUIRE(VALID_REQUESTMGR(requestmgr));
- *requestmgrp = NULL;
LOCK(&requestmgr->lock);
INSIST(requestmgr->iref > 0);
requestmgr->iref--;
REQUIRE(requestmgrp != NULL);
requestmgr = *requestmgrp;
+ *requestmgrp = NULL;
REQUIRE(VALID_REQUESTMGR(requestmgr));
LOCK(&requestmgr->lock);
if (need_destroy)
mgr_destroy(requestmgr);
-
- *requestmgrp = NULL;
}
static void
REQUIRE(requestp != NULL && VALID_REQUEST(*requestp));
request = *requestp;
+ *requestp = NULL;
req_log(ISC_LOG_DEBUG(3), "dns_request_destroy: request %p", request);
INSIST(request->timer == NULL);
req_destroy(request);
-
- *requestp = NULL;
}
/***
REQUIRE(queryp != NULL);
query = *queryp;
+ *queryp = NULL;
REQUIRE(!ISC_LINK_LINKED(query, link));
INSIST(query->tcpsocket == NULL);
query->magic = 0;
isc_mem_put(query->mctx, query, sizeof(*query));
- *queryp = NULL;
if (empty)
empty_bucket(res);
REQUIRE(resp != NULL);
res = *resp;
+ *resp = NULL;
REQUIRE(VALID_RESOLVER(res));
RTRACE("detach");
- *resp = NULL;
-
if (isc_refcount_decrement(&res->references) == 1) {
LOCK(&res->lock);
INSIST(atomic_load_acquire(&res->exiting));
REQUIRE(fetchp != NULL);
fetch = *fetchp;
+ *fetchp = NULL;
REQUIRE(DNS_FETCH_VALID(fetch));
fctx = fetch->private;
REQUIRE(VALID_FCTX(fctx));
UNLOCK(&res->buckets[bucketnum].lock);
isc_mem_putanddetach(&fetch->mctx, fetch, sizeof(*fetch));
- *fetchp = NULL;
if (bucket_empty)
empty_bucket(res);
REQUIRE(sdbimp != NULL && *sdbimp != NULL);
imp = *sdbimp;
+ *sdbimp = NULL;
dns_db_unregister(&imp->dbimp);
isc_mutex_destroy(&imp->driverlock);
isc_mem_putanddetach(&imp->mctx, imp, sizeof(dns_sdbimplementation_t));
-
- *sdbimp = NULL;
}
static inline unsigned int
REQUIRE(sdlzimp != NULL && *sdlzimp != NULL);
imp = *sdlzimp;
+ *sdlzimp = NULL;
/* Unregister the DLZ driver implementation */
dns_dlzunregister(&imp->dlz_imp);
* remove it from the memory context.
*/
isc_mem_putanddetach(&imp->mctx, imp, sizeof(dns_sdlzimplementation_t));
-
- *sdlzimp = NULL;
}
REQUIRE(tablep != NULL);
table = *tablep;
- REQUIRE(VALID_SSUTABLE(table));
*tablep = NULL;
+ REQUIRE(VALID_SSUTABLE(table));
if (isc_refcount_decrement(&table->references) == 1) {
destroy(table);
REQUIRE(tctxp != NULL && *tctxp != NULL);
tctx = *tctxp;
+ *tctxp = NULL;
mctx = tctx->mctx;
if (tctx->dhkey != NULL)
if (tctx->gsscred != NULL)
dst_gssapi_releasecred(&tctx->gsscred);
isc_mem_putanddetach(&mctx, tctx, sizeof(dns_tkeyctx_t));
- *tctxp = NULL;
}
static isc_result_t
REQUIRE(tsecp != NULL && *tsecp != NULL);
tsec = *tsecp;
+ *tsecp = NULL;
REQUIRE(DNS_TSEC_VALID(tsec));
switch (tsec->type) {
tsec->magic = 0;
isc_mem_put(tsec->mctx, tsec, sizeof(*tsec));
-
- *tsecp = NULL;
}
dns_tsectype_t
REQUIRE(validatorp != NULL);
val = *validatorp;
+ *validatorp = NULL;
REQUIRE(VALID_VALIDATOR(val));
LOCK(&val->lock);
if (want_destroy) {
destroy(val);
}
-
- *validatorp = NULL;
}
static void
REQUIRE(viewp != NULL);
view = *viewp;
- REQUIRE(DNS_VIEW_VALID(view));
*viewp = NULL;
+ REQUIRE(DNS_VIEW_VALID(view));
if (isc_refcount_decrement(&view->weakrefs) == 1) {
destroy(view);
void
dns_xfrin_detach(dns_xfrin_ctx_t **xfrp) {
dns_xfrin_ctx_t *xfr = *xfrp;
+ *xfrp = NULL;
INSIST(xfr->refcount > 0);
xfr->refcount--;
maybe_free(xfr);
- *xfrp = NULL;
}
static void
REQUIRE(zmgrp != NULL);
zmgr = *zmgrp;
+ *zmgrp = NULL;
REQUIRE(DNS_ZONEMGR_VALID(zmgr));
if (isc_refcount_decrement(&zmgr->refs) == 1) {
zonemgr_free(zmgr);
}
-
- *zmgrp = NULL;
}
isc_result_t
REQUIRE(iop != NULL);
io = *iop;
- REQUIRE(DNS_IO_VALID(io));
-
*iop = NULL;
+ REQUIRE(DNS_IO_VALID(io));
INSIST(!ISC_LINK_LINKED(io, link));
INSIST(io->event == NULL);
REQUIRE(confp != NULL);
conf = *confp;
+ *confp = NULL;
REQUIRE(IRS_DNSCONF_VALID(conf));
while ((keyent = ISC_LIST_HEAD(conf->trusted_keylist)) != NULL) {
}
isc_mem_put(conf->mctx, conf, sizeof(*conf));
-
- *confp = NULL;
}
irs_dnsconf_dnskeylist_t *
REQUIRE(confp != NULL);
conf = *confp;
+ *confp = NULL;
REQUIRE(IRS_RESCONF_VALID(conf));
while ((searchentry = ISC_LIST_HEAD(conf->searchlist)) != NULL) {
}
isc_mem_put(conf->mctx, conf, sizeof(*conf));
-
- *confp = NULL;
}
isc_sockaddrlist_t *
REQUIRE((*dynbuffer)->mctx != NULL);
dbuf = *dynbuffer;
- *dynbuffer = NULL; /* destroy external reference */
+ *dynbuffer = NULL;/* destroy external reference */
mctx = dbuf->mctx;
dbuf->mctx = NULL;
REQUIRE(counterp != NULL && *counterp != NULL);
counter = *counterp;
- REQUIRE(VALID_COUNTER(counter));
-
*counterp = NULL;
+ REQUIRE(VALID_COUNTER(counter));
if (isc_refcount_decrement(&counter->references) == 1) {
destroy(counter);
REQUIRE(eventp != NULL);
event = *eventp;
+ *eventp = NULL;
REQUIRE(event != NULL);
REQUIRE(!ISC_LINK_LINKED(event, ev_link));
if (event->ev_destroy != NULL)
(event->ev_destroy)(event);
-
- *eventp = NULL;
}
REQUIRE(heapp != NULL);
heap = *heapp;
+ *heapp = NULL;
REQUIRE(VALID_HEAP(heap));
if (heap->array != NULL)
heap->size * sizeof(void *));
heap->magic = 0;
isc_mem_putanddetach(&heap->mctx, heap, sizeof(*heap));
-
- *heapp = NULL;
}
static bool
REQUIRE(itp != NULL && *itp != NULL);
it = *itp;
+ *itp = NULL;
ht = it->ht;
isc_mem_put(ht->mctx, it, sizeof(isc_ht_iter_t));
-
- *itp = NULL;
}
isc_result_t
REQUIRE(lexp != NULL);
lex = *lexp;
+ *lexp = NULL;
REQUIRE(VALID_LEX(lex));
while (!EMPTY(lex->sources))
isc_mem_put(lex->mctx, lex->data, lex->max_token + 1);
lex->magic = 0;
isc_mem_put(lex->mctx, lex, sizeof(*lex));
-
- *lexp = NULL;
}
unsigned int
REQUIRE(lctxp != NULL && VALID_CONTEXT(*lctxp));
lctx = *lctxp;
+ *lctxp = NULL;
mctx = lctx->mctx;
if (lctx->logconfig != NULL) {
lctx->magic = 0;
isc_mem_putanddetach(&mctx, lctx, sizeof(*lctx));
-
- *lctxp = NULL;
}
void
REQUIRE(lcfgp != NULL && VALID_CONFIG(*lcfgp));
lcfg = *lcfgp;
+ *lcfgp = NULL;
/*
* This function cannot be called with a logconfig that is in
lcfg->magic = 0;
isc_mem_put(mctx, lcfg, sizeof(*lcfg));
-
- *lcfgp = NULL;
}
void
REQUIRE(!isc__nm_in_netthread());
isc_nm_t *mgr = *mgr0;
+ *mgr0 = NULL;
isc_refcount_destroy(&mgr->references);
isc_mem_put(mgr->mctx, mgr->workers,
mgr->nworkers * sizeof(isc__networker_t));
isc_mem_putanddetach(&mgr->mctx, mgr, sizeof(*mgr));
- *mgr0 = NULL;
}
void
REQUIRE(targetp != NULL && *targetp == NULL);
pool = *sourcep;
+ *sourcep = NULL;
if (count > pool->count) {
isc_pool_t *newpool = NULL;
unsigned int i;
pool = newpool;
}
- *sourcep = NULL;
*targetp = pool;
return (ISC_R_SUCCESS);
}
isc_pool_destroy(isc_pool_t **poolp) {
unsigned int i;
isc_pool_t *pool = *poolp;
+ *poolp = NULL;
for (i = 0; i < pool->count; i++) {
if (pool->free != NULL && pool->pool[i] != NULL)
pool->free(&pool->pool[i]);
}
isc_mem_put(pool->mctx, pool->pool, pool->count * sizeof(void *));
isc_mem_putanddetach(&pool->mctx, pool, sizeof(*pool));
- *poolp = NULL;
}
REQUIRE(rlp != NULL && *rlp != NULL);
rl = *rlp;
+ *rlp = NULL;
if (isc_refcount_decrement(&rl->references) == 1) {
ratelimiter_free(rl);
}
-
- *rlp = NULL;
}
isc_result_t
REQUIRE(symtabp != NULL);
symtab = *symtabp;
+ *symtabp = NULL;
REQUIRE(VALID_SYMTAB(symtab));
for (i = 0; i < symtab->size; i++) {
symtab->size * sizeof(eltlist_t));
symtab->magic = 0;
isc_mem_putanddetach(&symtab->mctx, symtab, sizeof(*symtab));
-
- *symtabp = NULL;
}
static inline unsigned int
REQUIRE(eventp != NULL);
event = *eventp;
+ *eventp = NULL;
REQUIRE(event != NULL);
REQUIRE(event->ev_type > 0);
REQUIRE(task->state != task_state_done);
task->state == task_state_pausing);
ENQUEUE(task->events, event, ev_link);
task->nevents++;
- *eventp = NULL;
return (was_idle);
}
*** Functions.
***/
-static isc_result_t
+static void
alloc_pool(isc_taskmgr_t *tmgr, isc_mem_t *mctx, unsigned int ntasks,
unsigned int quantum, isc_taskpool_t **poolp)
{
pool->quantum = quantum;
pool->tmgr = tmgr;
pool->tasks = isc_mem_get(mctx, ntasks * sizeof(isc_task_t *));
- for (i = 0; i < ntasks; i++)
+ for (i = 0; i < ntasks; i++) {
pool->tasks[i] = NULL;
+ }
*poolp = pool;
- return (ISC_R_SUCCESS);
}
isc_result_t
INSIST(ntasks > 0);
/* Allocate the pool structure */
- result = alloc_pool(tmgr, mctx, ntasks, quantum, &pool);
- if (result != ISC_R_SUCCESS)
- return (result);
+ alloc_pool(tmgr, mctx, ntasks, quantum, &pool);
/* Create the tasks */
for (i = 0; i < ntasks; i++) {
REQUIRE(targetp != NULL && *targetp == NULL);
pool = *sourcep;
+ *sourcep = NULL;
if (size > pool->ntasks) {
isc_taskpool_t *newpool = NULL;
unsigned int i;
/* Allocate a new pool structure */
- result = alloc_pool(pool->tmgr, pool->mctx, size,
- pool->quantum, &newpool);
- if (result != ISC_R_SUCCESS)
- return (result);
+ alloc_pool(pool->tmgr, pool->mctx, size,
+ pool->quantum, &newpool);
/* Copy over the tasks from the old pool */
for (i = 0; i < pool->ntasks; i++) {
result = isc_task_create(pool->tmgr, pool->quantum,
&newpool->tasks[i]);
if (result != ISC_R_SUCCESS) {
+ *sourcep = pool;
isc_taskpool_destroy(&newpool);
return (result);
}
pool = newpool;
}
- *sourcep = NULL;
*targetp = pool;
return (ISC_R_SUCCESS);
}
isc_taskpool_destroy(isc_taskpool_t **poolp) {
unsigned int i;
isc_taskpool_t *pool = *poolp;
+ *poolp = NULL;
for (i = 0; i < pool->ntasks; i++) {
if (pool->tasks[i] != NULL)
isc_task_detach(&pool->tasks[i]);
isc_mem_put(pool->mctx, pool->tasks,
pool->ntasks * sizeof(isc_task_t *));
isc_mem_putanddetach(&pool->mctx, pool, sizeof(*pool));
- *poolp = NULL;
}
void
isc_interfaceiter_t *iter;
REQUIRE(iterp != NULL);
iter = *iterp;
+ *iterp = NULL;
REQUIRE(VALID_IFITER(iter));
internal_destroy(iter);
iter->magic = 0;
isc_mem_put(iter->mctx, iter, sizeof(*iter));
- *iterp = NULL;
}
static void
free_socket(isc__socket_t **socketp) {
isc__socket_t *sock = *socketp;
+ *socketp = NULL;
INSIST(VALID_SOCKET(sock));
isc_refcount_destroy(&sock->references);
isc_mutex_destroy(&sock->lock);
isc_mem_put(sock->manager->mctx, sock, sizeof(*sock));
-
- *socketp = NULL;
}
#ifdef SO_RCVBUF
isc_interfaceiter_t *iter;
REQUIRE(iterp != NULL);
iter = *iterp;
+ *iterp = NULL;
REQUIRE(VALID_IFITER(iter));
if (iter->buf4 != NULL)
iter->magic = 0;
isc_mem_put(iter->mctx, iter, sizeof(*iter));
- *iterp = NULL;
}
REQUIRE(socketp != NULL);
sock = *socketp;
+ *socketp = NULL;
REQUIRE(VALID_SOCKET(sock));
LOCK(&sock->lock);
}
maybe_free_socket(&sock, __LINE__); /* Also unlocks the socket lock */
-
- *socketp = NULL;
}
isc_result_t
REQUIRE(managerp != NULL);
manager = *managerp;
+ *managerp = NULL;
REQUIRE(VALID_MANAGER(manager));
LOCK(&manager->lock);
}
manager->magic = 0;
isc_mem_putanddetach(&manager->mctx, manager, sizeof(*manager));
-
- *managerp = NULL;
}
static void
isccc_sexpr_t *item;
sexpr = *sexprp;
+ *sexprp = NULL;
if (sexpr == NULL)
return;
switch (sexpr->type) {
break;
}
free(sexpr);
-
- *sexprp = NULL;
}
static bool
REQUIRE(symtabp != NULL);
symtab = *symtabp;
+ *symtabp = NULL;
REQUIRE(VALID_SYMTAB(symtab));
for (i = 0; i < symtab->size; i++) {
free(symtab->table);
symtab->magic = 0;
free(symtab);
-
- *symtabp = NULL;
}
static inline unsigned int
static void
clientmgr_detach(ns_clientmgr_t **mp) {
+ int32_t oldrefs;
ns_clientmgr_t *mgr = *mp;
- int32_t oldrefs = isc_refcount_decrement(&mgr->references);
+ *mp = NULL;
+ oldrefs = isc_refcount_decrement(&mgr->references);
isc_log_write(ns_lctx, NS_LOGCATEGORY_CLIENT,
NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3),
"clientmgr @%p detach: %d", mgr, oldrefs - 1);
if (oldrefs == 1) {
clientmgr_destroy(mgr);
}
-
- *mp = NULL;
}
static void
REQUIRE(managerp != NULL);
manager = *managerp;
+ *managerp = NULL;
REQUIRE(VALID_MANAGER(manager));
MTRACE("destroy");
if (isc_refcount_decrement(&manager->references) == 1) {
clientmgr_destroy(manager);
}
-
- *managerp = NULL;
}
isc_sockaddr_t *
void
ns_interfacemgr_detach(ns_interfacemgr_t **targetp) {
ns_interfacemgr_t *target = *targetp;
+ *targetp = NULL;
REQUIRE(target != NULL);
REQUIRE(NS_INTERFACEMGR_VALID(target));
if (isc_refcount_decrement(&target->references) == 1) {
ns_interfacemgr_destroy(target);
}
- *targetp = NULL;
}
void
void
ns_interface_detach(ns_interface_t **targetp) {
ns_interface_t *target = *targetp;
+ *targetp = NULL;
REQUIRE(target != NULL);
REQUIRE(NS_INTERFACE_VALID(target));
if (isc_refcount_decrement(&target->references) == 1) {
ns_interface_destroy(target);
}
- *targetp = NULL;
}
/*%
void
ns_listenlist_detach(ns_listenlist_t **listp) {
ns_listenlist_t *list = *listp;
+ *listp = NULL;
INSIST(list->refcount > 0);
list->refcount--;
if (list->refcount == 0)
destroy(list);
- *listp = NULL;
}
isc_result_t
REQUIRE(*qctxp != NULL);
qctx = *qctxp;
+ *qctxp = NULL;
if (qctx->zone != NULL) {
dns_zone_detach(&qctx->zone);
}
isc_mem_put(mctx, qctx, sizeof(*qctx));
- *qctxp = NULL;
}
ns_hookresult_t
s->state = -1;
s->result = ISC_R_FAILURE;
- *soa_stream = NULL;
*data_stream = NULL;
+ *soa_stream = NULL;
*sp = (rrstream_t *) s;
return (ISC_R_SUCCESS);
}
static void
xfrout_ctx_destroy(xfrout_ctx_t **xfrp) {
xfrout_ctx_t *xfr = *xfrp;
+ *xfrp = NULL;
INSIST(xfr->sends == 0);
dns_db_detach(&xfr->db);
isc_mem_putanddetach(&xfr->mctx, xfr, sizeof(*xfr));
-
- *xfrp = NULL;
}
static void