mirror of
https://github.com/haproxy/haproxy.git
synced 2026-04-21 14:17:30 -04:00
[BUG] cfgparse memory leak and missing free calls in deinit()
Thich patch fixes cfgparser not to leak memory on each default server statement and adds several missing free calls in deinit(): - free(l->name) - free(l->counters) - free(p->desc); - free(p->fwdfor_hdr_name); None of them are critical, hopefully.
This commit is contained in:
parent
7d38afb4a8
commit
aff01ea1dc
2 changed files with 11 additions and 6 deletions
|
|
@ -3023,13 +3023,13 @@ stats_error_parsing:
|
|||
goto out;
|
||||
}
|
||||
|
||||
if ((newsrv = (struct server *)calloc(1, sizeof(struct server))) == NULL) {
|
||||
Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
|
||||
err_code |= ERR_ALERT | ERR_ABORT;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!defsrv) {
|
||||
if ((newsrv = (struct server *)calloc(1, sizeof(struct server))) == NULL) {
|
||||
Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
|
||||
err_code |= ERR_ALERT | ERR_ABORT;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* the servers are linked backwards first */
|
||||
newsrv->next = curproxy->srv;
|
||||
curproxy->srv = newsrv;
|
||||
|
|
|
|||
|
|
@ -854,10 +854,15 @@ void deinit(void)
|
|||
l = p->listen;
|
||||
while (l) {
|
||||
l_next = l->next;
|
||||
free(l->name);
|
||||
free(l->counters);
|
||||
free(l);
|
||||
l = l_next;
|
||||
}/* end while(l) */
|
||||
|
||||
free(p->desc);
|
||||
free(p->fwdfor_hdr_name);
|
||||
|
||||
req_acl_free(&p->req_acl);
|
||||
|
||||
pool_destroy2(p->req_cap_pool);
|
||||
|
|
|
|||
Loading…
Reference in a new issue