From 51027cab73d1700ee2ee8c4ed5f46da88950a32c Mon Sep 17 00:00:00 2001 From: Jan Vaclav Date: Tue, 7 Apr 2026 12:42:26 +0200 Subject: [PATCH] dns: fix infinite loop in assertion checking search domains The loop condition checked the same pointer twice instead of checking the array element: `ip_data->domains.search && ip_data->domains.search` should be `ip_data->domains.search && ip_data->domains.search[i]`. As written, the loop would never terminate when `search` is non-NULL (only in debug builds with NM_MORE_ASSERTS > 5). Found by Coverity (CID: CONSTANT_EXPRESSION_RESULT). Fixes: b8dab47705dc ('dns: fix handling default routing domains with systemd-resolved') Co-Authored-By: Claude Opus 4.6 (cherry picked from commit 8685ac184517d1852100f27fdc9e3fd1ce1d4154) --- src/core/dns/nm-dns-manager.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/dns/nm-dns-manager.c b/src/core/dns/nm-dns-manager.c index ec33c46427..f1a19d0132 100644 --- a/src/core/dns/nm-dns-manager.c +++ b/src/core/dns/nm-dns-manager.c @@ -371,7 +371,7 @@ _ASSERT_dns_config_ip_data(const NMDnsConfigIPData *ip_data) gboolean has_default = FALSE; gsize i; - for (i = 0; ip_data->domains.search && ip_data->domains.search; i++) { + for (i = 0; ip_data->domains.search && ip_data->domains.search[i]; i++) { const char *d = ip_data->domains.search[i]; d = nm_utils_parse_dns_domain(d, NULL);