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,