1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-24 06:04:05 +03:00

Merge pull request #33933 from yuwata/systemctl-bus-transport-and-runtime-scope

systemctl: fix bus transport and runtime scope handling
This commit is contained in:
Yu Watanabe 2024-08-06 09:12:28 +09:00 committed by GitHub
commit 5a5a7093b8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 0 deletions

View File

@ -432,6 +432,14 @@ int help_boot_loader_entry(void) {
sd_bus *bus;
int r;
/* This is called without checking runtime scope and bus transport like we do in parse_argv().
* Loading boot entries is only supported by system scope. Let's gracefully adjust them. */
arg_runtime_scope = RUNTIME_SCOPE_SYSTEM;
if (arg_transport == BUS_TRANSPORT_CAPSULE) {
arg_host = NULL;
arg_transport = BUS_TRANSPORT_LOCAL;
}
r = acquire_bus(BUS_FULL, &bus);
if (r < 0)
return r;

View File

@ -1075,6 +1075,10 @@ static int systemctl_parse_argv(int argc, char *argv[]) {
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Cannot access user instance remotely.");
if (arg_transport == BUS_TRANSPORT_CAPSULE && arg_runtime_scope != RUNTIME_SCOPE_USER)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Cannot access system instance with --capsule=/-C.");
if (arg_wait && arg_no_block)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"--wait may not be combined with --no-block.");

Binary file not shown.