From fe5fbde00afd64a2aa57af9b9b0e1fbf6583e989 Mon Sep 17 00:00:00 2001 From: maqiang-pc Date: Wed, 8 Apr 2026 17:22:27 +0800 Subject: [PATCH] Fix: When configuring DNS as zero in NetworkManager, it results in the loss of system DNS configuration.The solution is to verify during configuration whether the address is zero. --- .../nm-libnm-core-utils.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/libnm-core-aux-intern/nm-libnm-core-utils.c b/src/libnm-core-aux-intern/nm-libnm-core-utils.c index 9a0b5e7c15..3e0f06a03e 100644 --- a/src/libnm-core-aux-intern/nm-libnm-core-utils.c +++ b/src/libnm-core-aux-intern/nm-libnm-core-utils.c @@ -786,6 +786,15 @@ nm_dns_uri_parse(int addr_family, const char *str, NMDnsServer *dns, GError **er str); return FALSE; } + /*check addr is zero*/ + if(memcmp(&dns->addr, &nm_ip_addr_zero, sizeof(dns->addr)) == 0){ + g_set_error(error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("\"%s\" is not a valid IP address"), + str); + return FALSE; + } dns->servername = name; dns->scheme = NM_DNS_URI_SCHEME_NONE; @@ -889,6 +898,16 @@ nm_dns_uri_parse(int addr_family, const char *str, NMDnsServer *dns, GError **er addr); return FALSE; } + /*check addr is zero*/ + if(memcmp(&dns->addr, &nm_ip_addr_zero, sizeof(dns->addr)) == 0){ + g_set_error(error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("\"%s\" is not a valid IP address"), + addr); + return FALSE; + } + if (dns->scheme != NM_DNS_URI_SCHEME_TLS && dns->servername) { g_set_error_literal(error,