login: fix ReleaseSession.Id dispatch flag in io.systemd.Login Varlink handler

The ReleaseSession method's Id field is declared as nullable (?string) in
the IDL, allowing callers to omit it so that the method releases the
caller's own session via session_is_self(NULL). The SD_JSON_MANDATORY flag
in the dispatch table contradicts this and makes omitting Id return -EINVAL
("Invalid argument", parameter "Id") instead.

Drop the flag so omitting Id is treated as passing NULL.

Fixes: 2baca6c22b
This commit is contained in:
noxiouz
2026-03-02 10:06:39 +00:00
parent 93101e7ef0
commit 3eacf0d321
+1 -1
View File
@@ -308,7 +308,7 @@ static int vl_method_release_session(sd_varlink *link, sd_json_variant *paramete
} p;
static const sd_json_dispatch_field dispatch_table[] = {
{ "Id", SD_JSON_VARIANT_STRING, sd_json_dispatch_const_string, voffsetof(p, id), SD_JSON_MANDATORY },
{ "Id", SD_JSON_VARIANT_STRING, sd_json_dispatch_const_string, voffsetof(p, id), 0 },
{}
};