As reported by Christopher, we may call spoe_release_agent() when leaving
after an allocation failure or a config parse error. We must not assume
agent->rt is valid there as the allocation could have failed.
This should be backported to 1.9 and 1.8.
LIST_DEL(&grp->list);
spoe_release_group(grp);
}
- for (i = 0; i < global.nbthread; ++i)
- HA_SPIN_DESTROY(&agent->rt[i].lock);
+ if (agent->rt) {
+ for (i = 0; i < global.nbthread; ++i)
+ HA_SPIN_DESTROY(&agent->rt[i].lock);
+ }
free(agent->rt);
free(agent);
}