FLT_OT_LIST_DEL(&(acl->list));
FLT_OT_FREE(acl);
}
- if ((*ptr)->cond != NULL) {
- prune_acl_cond((*ptr)->cond);
- FLT_OT_FREE((*ptr)->cond);
- }
+ free_acl_cond((*ptr)->cond);
FLT_OT_LIST_DESTROY(context, &((*ptr)->contexts));
FLT_OT_LIST_DESTROY(span, &((*ptr)->spans));
FLT_OT_LIST_DESTROY(str, &((*ptr)->finish));
out_free_term:
free(cur_term);
out_free_suite:
- prune_acl_cond(cond);
- free(cond);
+ free_acl_cond(cond);
out_return:
return NULL;
}
}
}
+/* Purge everything in the acl_cond <cond>, then free <cond> */
void free_acl_cond(struct acl_cond *cond)
{
struct acl_term_suite *suite, *suiteb;
rule->file = strdup(file);
if (!rule->file) {
use_backend_alloc_error:
- if (cond)
- prune_acl_cond(cond);
- ha_free(&cond);
+ free_acl_cond(cond);
if (rule)
ha_free(&(rule->be.name));
ha_free(&rule);
rule->file = strdup(file);
if (!rule->file) {
use_server_alloc_error:
- if (cond)
- prune_acl_cond(cond);
- ha_free(&cond);
+ free_acl_cond(cond);
if (rule)
ha_free(&(rule->srv.name));
ha_free(&rule);
rule = calloc(1, sizeof(*rule));
if (!rule) {
- if (cond)
- prune_acl_cond(cond);
- ha_free(&cond);
+ free_acl_cond(cond);
goto alloc_error;
}
rule->cond = cond;
rule = calloc(1, sizeof(*rule));
if (!rule) {
- if (cond)
- prune_acl_cond(cond);
- ha_free(&cond);
+ free_acl_cond(cond);
goto alloc_error;
}
rule->cond = cond;
rule = calloc(1, sizeof(*rule));
if (!rule) {
- if (cond)
- prune_acl_cond(cond);
- ha_free(&cond);
+ free_acl_cond(cond);
goto alloc_error;
}
rule->cond = cond;
return;
free(rule->name);
free(rule->value);
- if (rule->cond) {
- prune_acl_cond(rule->cond);
- free(rule->cond);
- }
+ free_acl_cond(rule->cond);
free(rule);
}
free(rule->value);
free(rule);
}
- if (cond) {
- prune_acl_cond(cond);
- free(cond);
- }
+ free_acl_cond(cond);
memprintf(err, "out of memory");
return 0;
}
prune_acl(acl);
free(acl);
}
- if (msg->cond) {
- prune_acl_cond(msg->cond);
- free(msg->cond);
- }
+ free_acl_cond(msg->cond);
free(msg);
}
{
struct logformat_node *lf, *lfb;
- if (rdr->cond) {
- prune_acl_cond(rdr->cond);
- free(rdr->cond);
- }
+ free_acl_cond(rdr->cond);
free(rdr->rdr_str);
free(rdr->cookie_str);
list_for_each_entry_safe(lf, lfb, &rdr->rdr_fmt, list) {
http_free_redirect_rule(rule);
else if (cond) {
/* rule not yet allocated, but cond already is */
- prune_acl_cond(cond);
- free(cond);
+ free_acl_cond(cond);
}
return NULL;
list_for_each_entry_safe(cond, condb, &p->mon_fail_cond, list) {
LIST_DELETE(&cond->list);
- prune_acl_cond(cond);
- free(cond);
+ free_acl_cond(cond);
}
EXTRA_COUNTERS_FREE(p->extra_counters_fe);
list_for_each_entry_safe(srule, sruleb, &p->server_rules, list) {
LIST_DELETE(&srule->list);
- prune_acl_cond(srule->cond);
+ free_acl_cond(srule->cond);
list_for_each_entry_safe(lf, lfb, &srule->expr, list) {
LIST_DELETE(&lf->list);
release_sample_expr(lf->expr);
free(lf);
}
free(srule->file);
- free(srule->cond);
free(srule);
}
list_for_each_entry_safe(rule, ruleb, &p->switching_rules, list) {
LIST_DELETE(&rule->list);
- if (rule->cond) {
- prune_acl_cond(rule->cond);
- free(rule->cond);
- }
+ free_acl_cond(rule->cond);
free(rule->file);
free(rule);
}