In a userlist section, when a user is parsed, if a specified group is not
found, an error is reported. In this case we must take care to release the
alredy built groups list.
It was reported by Coverity in #2841: CID
1587770.
This patch could be backported to all stable versions.
if (!ag) {
ha_alert("userlist '%s': no such group '%s' specified in user '%s'\n",
curuserlist->name, group, curuser->user);
- free(groups);
+ while (groups) {
+ grl = groups;
+ groups = groups->next;
+ free(grl);
+ }
return ERR_ALERT | ERR_FATAL;
}
if (!grl) {
ha_alert("userlist '%s': no more memory when trying to allocate the user groups.\n",
curuserlist->name);
- free(groups);
+ while (groups) {
+ grl = groups;
+ groups = groups->next;
+ free(grl);
+ }
return ERR_ALERT | ERR_FATAL;
}