BUG/MINOR: mworker: use after free when the PID not assigned

Commit 4528611 ("MEDIUM: mworker: store the leaving state of a process")
introduced a bug in the mworker_env_to_proc_list() function.

This is very unlikely to occur since the PID should always be assigned.
It can probably happen if the environment variable is corrupted.

No backport needed.
This commit is contained in:
William Lallemand 2019-05-14 11:15:18 +02:00 committed by William Lallemand
parent f983d00a1c
commit 920fc8bbe4

View File

@ -180,14 +180,15 @@ void mworker_env_to_proc_list()
}
}
if (child->pid) {
/* this is a process inherited from a reload that should be leaving */
child->options |= PROC_O_LEAVING;
LIST_ADDQ(&proc_list, &child->list);
} else {
free(child->id);
free(child);
}
/* this is a process inherited from a reload that should be leaving */
child->options |= PROC_O_LEAVING;
}
unsetenv("HAPROXY_PROCESSES");