util/u_debug: fix parsing of "all" again

The current implementation is incorrect if the string starts with "all"
like "RADV_DEBUG=allbos".

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10741
Fixes: 0c42c79edf ("utils/u_debug: Fix parse of "all,<something else>")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28051>
This commit is contained in:
Samuel Pitoiset 2024-03-07 19:54:22 +01:00 committed by Marge Bot
parent 7eae0e03f1
commit 433a3c262a

View file

@ -423,18 +423,17 @@ parse_debug_string(const char *debug,
if (debug != NULL) {
for (; control->string != NULL; control++) {
if (!strncmp(debug, "all", strlen("all"))) {
flag |= control->flag;
const char *s = debug;
unsigned n;
} else {
const char *s = debug;
unsigned n;
for (; n = strcspn(s, ", "), *s; s += MAX2(1, n)) {
if (!n)
continue;
for (; n = strcspn(s, ", "), *s; s += MAX2(1, n)) {
if (strlen(control->string) == n &&
!strncmp(control->string, s, n))
flag |= control->flag;
}
if (!strncmp("all", s, n) ||
(strlen(control->string) == n &&
!strncmp(control->string, s, n)))
flag |= control->flag;
}
}
}