From cc194dddc2886a1bee749248c8d8a323a5c4bd62 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 5 Aug 2024 10:43:13 +0900 Subject: [PATCH 1/2] resolve: voidify unused result of function call --- src/resolve/resolved-varlink.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/resolve/resolved-varlink.c b/src/resolve/resolved-varlink.c index b34d035d96..6708159323 100644 --- a/src/resolve/resolved-varlink.c +++ b/src/resolve/resolved-varlink.c @@ -282,7 +282,7 @@ static void vl_method_resolve_hostname_complete(DnsQuery *query) { finish: if (r < 0) { log_full_errno(ERRNO_IS_DISCONNECT(r) ? LOG_DEBUG : LOG_ERR, r, "Failed to send hostname reply: %m"); - r = sd_varlink_error_errno(q->varlink_request, r); + (void) sd_varlink_error_errno(q->varlink_request, r); } } @@ -495,7 +495,7 @@ static void vl_method_resolve_address_complete(DnsQuery *query) { finish: if (r < 0) { log_full_errno(ERRNO_IS_DISCONNECT(r) ? LOG_DEBUG : LOG_ERR, r, "Failed to send address reply: %m"); - r = sd_varlink_error_errno(q->varlink_request, r); + (void) sd_varlink_error_errno(q->varlink_request, r); } } @@ -841,7 +841,7 @@ static void resolve_service_all_complete(DnsQuery *query) { finish: if (r < 0) { log_error_errno(r, "Failed to resolve service: %m"); - r = sd_varlink_error_errno(q->varlink_request, r); + (void) sd_varlink_error_errno(q->varlink_request, r); } } @@ -986,7 +986,7 @@ static void vl_method_resolve_service_complete(DnsQuery *query) { finish: if (r < 0) { log_error_errno(r, "Failed to send address reply: %m"); - r = sd_varlink_error_errno(q->varlink_request, r); + (void) sd_varlink_error_errno(q->varlink_request, r); } } @@ -1147,7 +1147,7 @@ static void vl_method_resolve_record_complete(DnsQuery *query) { finish: if (r < 0) { log_full_errno(ERRNO_IS_DISCONNECT(r) ? LOG_DEBUG : LOG_ERR, r, "Failed to send record reply: %m"); - sd_varlink_error_errno(q->varlink_request, r); + (void) sd_varlink_error_errno(q->varlink_request, r); } } From b48ab08732a76b7337628e1e716f11c687000903 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 5 Aug 2024 10:46:41 +0900 Subject: [PATCH 2/2] resolve: refuse invalid service without type field Fixes Fixes #33935. --- src/resolve/resolved-bus.c | 5 +++++ src/resolve/resolved-varlink.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/resolve/resolved-bus.c b/src/resolve/resolved-bus.c index d6d2273dc9..847bb6bc6e 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 6708159323..f2fbf7a523 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)),