From: Yu Watanabe Date: Mon, 5 Aug 2024 01:46:41 +0000 (+0900) Subject: resolve: refuse invalid service without type field X-Git-Tag: v257-rc1~736^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F33939%2Fhead;p=thirdparty%2Fsystemd.git resolve: refuse invalid service without type field Fixes Fixes #33935. --- diff --git a/src/resolve/resolved-bus.c b/src/resolve/resolved-bus.c index d6d2273dc9d..847bb6bc6ec 100644 --- a/src/resolve/resolved-bus.c +++ b/src/resolve/resolved-bus.c @@ -1148,6 +1148,11 @@ static void resolve_service_all_complete(DnsQuery *query) { if (r < 0) goto finish; + if (isempty(type)) { + r = reply_method_errorf(q, BUS_ERROR_NO_SUCH_SERVICE, "'%s' does not provide valid service", dns_query_string(q)); + goto finish; + } + r = sd_bus_message_append( reply, "ssst", diff --git a/src/resolve/resolved-varlink.c b/src/resolve/resolved-varlink.c index 6708159323d..f2fbf7a5232 100644 --- a/src/resolve/resolved-varlink.c +++ b/src/resolve/resolved-varlink.c @@ -828,6 +828,11 @@ static void resolve_service_all_complete(DnsQuery *query) { if (r < 0) goto finish; + if (isempty(type)) { + r = sd_varlink_error(q->varlink_request, "io.systemd.Resolve.ServiceNotProvided", NULL); + goto finish; + } + r = sd_varlink_replybo( query->varlink_request, SD_JSON_BUILD_PAIR("services", SD_JSON_BUILD_VARIANT(srv)),