]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tree-wide: drop redundant check for SD_VARLINK_METHOD_MORE flag
authorMike Yuan <me@yhndnzj.com>
Sun, 8 Feb 2026 20:47:38 +0000 (21:47 +0100)
committerMike Yuan <me@yhndnzj.com>
Mon, 16 Feb 2026 08:44:54 +0000 (09:44 +0100)
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.

src/bootctl/bootctl-status.c
src/import/importd.c
src/pcrlock/pcrlock.c
src/resolve/resolved-varlink.c
src/shared/metrics.c
src/sysext/sysext.c

index 9c53522594a506bf0f55b176fa2feb6fa6c20e22..67b590b76f1c2658b133f7c6052f6bf4854e0408 100644 (file)
@@ -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,
index 549bbe712f8ff053f040514d12b3b3028c91febb..280aa88d46b03a5dbc4a9dbc6e6d446d27b75dbe 100644 (file)
@@ -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;
index 396785280c33f5fda3a8881c58f756ff7eb89a79..138841f31cf5602ac759ab6aa94a394713e67ad1 100644 (file)
@@ -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)
index 760e89042668a80eb5b882affd5e7e867ed9b6a4..e99a69cabdd1b996a77af32e14ddd4a5a1e00741 100644 (file)
@@ -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)
index 9c70f1129bceb0074619cbdb9a7c095fc450a4b4..9c7cf282cbdf7ec1fc943f9dbb3aab5257e358bf 100644 (file)
@@ -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;
index 5e16ace9f99faa23b6e8210e763e48acff0cec49..3661457d26f737a625b6124dcadb7d488fefac6f 100644 (file)
@@ -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);