if (server->components) rbtree_free(server->components);
server->components = NULL;
- free(server);
+ talloc_free(server);
}
void virtual_servers_free(time_t when)
indexed_modcallable *c = data;
modcallable_free(&c->modulelist);
- free(c);
+ talloc_free(c);
}
static int indexed_modcallable_cmp(const void *one, const void *two)
}
} else {
- free(mh->insthandle);
+ talloc_free(mh->insthandle);
}
*last = mh->next;
- free(mh);
+ talloc_free(mh);
}
}
* we'll check for that later, I guess.
*/
pthread_mutex_destroy(this->mutex);
- free(this->mutex);
+ talloc_free(this->mutex);
}
#endif
memset(this, 0, sizeof(*this));
- free(this);
+ talloc_free(this);
}
lt_dlclose(this->handle); /* ignore any errors */
memset(this, 0, sizeof(*this));
- free(this);
+ talloc_free(this);
}
}
/* make room for the module type */
- node = rad_malloc(sizeof(*node));
- memset(node, 0, sizeof(*node));
+ node = talloc_zero(cs, module_entry_t);
strlcpy(node->name, module_name, sizeof(node->name));
node->module = module;
node->handle = handle;
if (!rbtree_insert(module_tree, node)) {
radlog(L_ERR, "Failed to cache module %s", module_name);
lt_dlclose(handle);
- free(node);
+ talloc_free(node);
return NULL;
}
/*
* Found the configuration entry.
*/
- node = rad_malloc(sizeof(*node));
- memset(node, 0, sizeof(*node));
+ node = talloc_zero(cs, module_instance_t);
node->insthandle = NULL;
node->cs = cs;
node->entry = linkto_module(module_name, cs);
if (!node->entry) {
- free(node);
+ talloc_free(node);
/* linkto_module logs any errors */
return NULL;
}
cf_log_err(cf_sectiontoitem(cs),
"Instantiation failed for module \"%s\"",
instname);
- free(node);
+ talloc_free(node);
return NULL;
}
* If it isn't, we create a mutex.
*/
if ((node->entry->module->type & RLM_TYPE_THREAD_UNSAFE) != 0) {
- node->mutex = (pthread_mutex_t *) rad_malloc(sizeof(pthread_mutex_t));
+ node->mutex = talloc_zero(node, pthread_mutex_t);
+
/*
* Initialize the mutex.
*/
/*
* Create a new sublist.
*/
-static indexed_modcallable *new_sublist(rbtree_t *components, int comp, int idx)
+static indexed_modcallable *new_sublist(CONF_SECTION *cs,
+ rbtree_t *components, int comp, int idx)
{
indexed_modcallable *c;
return NULL;
}
- c = rad_malloc(sizeof(*c));
+ c = talloc_zero(cs, indexed_modcallable);
c->modulelist = NULL;
c->comp = comp;
c->idx = idx;
if (!rbtree_insert(components, c)) {
- free(c);
+ talloc_free(c);
return NULL;
}
return 0;
}
- subcomp = new_sublist(components, comp, dval->value);
+ subcomp = new_sublist(cs, components, comp, dval->value);
if (!subcomp) {
modcallable_free(&ml);
return 1;
idx = 0;
}
- subcomp = new_sublist(components, comp, idx);
+ subcomp = new_sublist(cs, components, comp, idx);
if (subcomp == NULL) {
modcallable_free(&this);
continue;
goto error;
}
- server = rad_malloc(sizeof(*server));
- memset(server, 0, sizeof(*server));
-
+ server = talloc(cs, virtual_server_t);
server->name = name;
server->created = time(NULL);
server->cs = cs;
/*
* Save the old instance handle for later deletion.
*/
- mh = rad_malloc(sizeof(*mh));
+ mh = talloc_zero(cs, fr_module_hup_t);
mh->mi = node;
mh->when = when;
mh->insthandle = node->insthandle;