(void) fr_strerror(); /* Clear any existing messages */
- if (!filter && !list)
-
if (!fr_assert(!(!filter && !list))) return;
if (!list) {
match = fr_cursor_init(&list_cursor, &list);
while (true) {
+ if (!match && !check) goto mismatch;
+
/*
* The lists are sorted, so if the first
* attributes aren't of the same type, then we're
check = fr_cursor_next(&filter_cursor);
match = fr_cursor_next(&list_cursor);
- if (!match && !check) goto mismatch;
/*
* One list ended earlier than the others, they
* didn't match.
*/
- if (!match || !check) goto mismatch;
+ if (!match || !check) break;
}
return true;