From: Mike Yuan Date: Sun, 8 Feb 2026 20:47:38 +0000 (+0100) Subject: tree-wide: drop redundant check for SD_VARLINK_METHOD_MORE flag X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=09388a6b9e471c817f00b8f4f59b514810670a71;p=thirdparty%2Fsystemd.git tree-wide: drop redundant check for SD_VARLINK_METHOD_MORE flag If the IDL declares the method requires 'more' yet the call doesn't have it set, varlink_idl_validate_method_call() should have rejected it and the callback shouldn't be reached. --- diff --git a/src/bootctl/bootctl-status.c b/src/bootctl/bootctl-status.c index 9c53522594a..67b590b76f1 100644 --- a/src/bootctl/bootctl-status.c +++ b/src/bootctl/bootctl-status.c @@ -642,14 +642,12 @@ int vl_method_list_boot_entries(sd_varlink *link, sd_json_variant *parameters, s int r; assert(link); + assert(FLAGS_SET(flags, SD_VARLINK_METHOD_MORE)); r = sd_varlink_dispatch(link, parameters, /* dispatch_table= */ NULL, /* userdata= */ NULL); if (r != 0) return r; - if (!FLAGS_SET(flags, SD_VARLINK_METHOD_MORE)) - return sd_varlink_error(link, SD_VARLINK_ERROR_EXPECTED_MORE, NULL); - r = acquire_esp(/* unprivileged_mode= */ false, /* graceful= */ false, /* ret_part= */ NULL, diff --git a/src/import/importd.c b/src/import/importd.c index 549bbe712f8..280aa88d46b 100644 --- a/src/import/importd.c +++ b/src/import/importd.c @@ -1793,14 +1793,12 @@ static int vl_method_list_transfers(sd_varlink *link, sd_json_variant *parameter assert(link); assert(parameters); + assert(FLAGS_SET(flags, SD_VARLINK_METHOD_MORE)); r = sd_varlink_dispatch(link, parameters, dispatch_table, &p); if (r != 0) return r; - if (!FLAGS_SET(flags, SD_VARLINK_METHOD_MORE)) - return sd_varlink_error(link, SD_VARLINK_ERROR_EXPECTED_MORE, NULL); - r = varlink_set_sentinel(link, "io.systemd.Import.NoTransfers"); if (r < 0) return r; diff --git a/src/pcrlock/pcrlock.c b/src/pcrlock/pcrlock.c index 396785280c3..138841f31cf 100644 --- a/src/pcrlock/pcrlock.c +++ b/src/pcrlock/pcrlock.c @@ -5404,6 +5404,7 @@ static int vl_method_read_event_log(sd_varlink *link, sd_json_variant *parameter int r; assert(link); + assert(FLAGS_SET(flags, SD_VARLINK_METHOD_MORE)); r = sd_varlink_dispatch(link, parameters, /* dispatch_table= */ NULL, /* userdata= */ NULL); if (r != 0) diff --git a/src/resolve/resolved-varlink.c b/src/resolve/resolved-varlink.c index 760e8904266..e99a69cabdd 100644 --- a/src/resolve/resolved-varlink.c +++ b/src/resolve/resolved-varlink.c @@ -1239,9 +1239,7 @@ static int vl_method_subscribe_query_results(sd_varlink *link, sd_json_variant * Manager *m = ASSERT_PTR(sd_varlink_get_userdata(ASSERT_PTR(link))); int r; - /* if the client didn't set the more flag, it is using us incorrectly */ - if (!FLAGS_SET(flags, SD_VARLINK_METHOD_MORE)) - return sd_varlink_error(link, SD_VARLINK_ERROR_EXPECTED_MORE, NULL); + assert(FLAGS_SET(flags, SD_VARLINK_METHOD_MORE)); r = verify_polkit(link, parameters, "org.freedesktop.resolve1.subscribe-query-results"); if (r <= 0) @@ -1382,9 +1380,7 @@ static int vl_method_subscribe_dns_configuration(sd_varlink *link, sd_json_varia Manager *m = ASSERT_PTR(sd_varlink_get_userdata(ASSERT_PTR(link))); int r; - /* if the client didn't set the more flag, it is using us incorrectly */ - if (!FLAGS_SET(flags, SD_VARLINK_METHOD_MORE)) - return sd_varlink_error(link, SD_VARLINK_ERROR_EXPECTED_MORE, NULL); + assert(FLAGS_SET(flags, SD_VARLINK_METHOD_MORE)); r = verify_polkit(link, parameters, "org.freedesktop.resolve1.subscribe-dns-configuration"); if (r <= 0) diff --git a/src/shared/metrics.c b/src/shared/metrics.c index 9c70f1129bc..9c7cf282cbd 100644 --- a/src/shared/metrics.c +++ b/src/shared/metrics.c @@ -84,14 +84,12 @@ int metrics_method_describe( assert(metric_family_table); assert(link); assert(parameters); + assert(FLAGS_SET(flags, SD_VARLINK_METHOD_MORE)); r = sd_varlink_dispatch(link, parameters, /* dispatch_table= */ NULL, /* userdata= */ NULL); if (r != 0) return r; - if (!FLAGS_SET(flags, SD_VARLINK_METHOD_MORE)) - return sd_varlink_error(link, SD_VARLINK_ERROR_EXPECTED_MORE, NULL); - r = varlink_set_sentinel(link, "io.systemd.Metrics.NoSuchMetric"); if (r < 0) return r; @@ -123,14 +121,12 @@ int metrics_method_list( assert(metric_family_table); assert(link); assert(parameters); + assert(FLAGS_SET(flags, SD_VARLINK_METHOD_MORE)); r = sd_varlink_dispatch(link, parameters, /* dispatch_table= */ NULL, /* userdata= */ NULL); if (r != 0) return r; - if (!FLAGS_SET(flags, SD_VARLINK_METHOD_MORE)) - return sd_varlink_error(link, SD_VARLINK_ERROR_EXPECTED_MORE, NULL); - r = varlink_set_sentinel(link, "io.systemd.Metrics.NoSuchMetric"); if (r < 0) return r; diff --git a/src/sysext/sysext.c b/src/sysext/sysext.c index 5e16ace9f99..3661457d26f 100644 --- a/src/sysext/sysext.c +++ b/src/sysext/sysext.c @@ -2749,6 +2749,7 @@ static int vl_method_list(sd_varlink *link, sd_json_variant *parameters, sd_varl int r; assert(link); + assert(FLAGS_SET(flags, SD_VARLINK_METHOD_MORE)); const char *class = NULL; r = sd_varlink_dispatch(link, parameters, dispatch_table, &class);