util: fix condition_free_list_type()
This fixes a bug introduced by c4f58deab5.
Closes oss-fuzz#13878, oss-fuzz#13882, oss-fuzz#13884, oss-fuzz#13886, and
oss-fuzz#13888.
This commit is contained in:
@@ -77,17 +77,17 @@ void condition_free(Condition *c) {
|
||||
free(c);
|
||||
}
|
||||
|
||||
Condition* condition_free_list_type(Condition *first, ConditionType type) {
|
||||
Condition *c, *n, *r = NULL;
|
||||
Condition* condition_free_list_type(Condition *head, ConditionType type) {
|
||||
Condition *c, *n;
|
||||
|
||||
LIST_FOREACH_SAFE(conditions, c, n, first)
|
||||
if (type < 0 || c->type == type)
|
||||
LIST_FOREACH_SAFE(conditions, c, n, head)
|
||||
if (type < 0 || c->type == type) {
|
||||
LIST_REMOVE(conditions, head, c);
|
||||
condition_free(c);
|
||||
else if (!r)
|
||||
r = c;
|
||||
}
|
||||
|
||||
assert(type >= 0 || !r);
|
||||
return r;
|
||||
assert(type >= 0 || !head);
|
||||
return head;
|
||||
}
|
||||
|
||||
static int condition_test_kernel_command_line(Condition *c) {
|
||||
|
||||
Reference in New Issue
Block a user