mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-24 21:34:08 +03:00
core: fix deserialization of StartTransientUnit() parameters
This commit is contained in:
parent
21586b77de
commit
6ce270b10a
@ -547,11 +547,11 @@ static int method_start_transient_unit(sd_bus *bus, sd_bus_message *message, voi
|
||||
if (mode < 0)
|
||||
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Job mode %s is invalid.", smode);
|
||||
|
||||
r = manager_load_unit(m, name, NULL, error, &u);
|
||||
r = selinux_access_check(bus, message, "start", error);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = selinux_unit_access_check(u, bus, message, "start", error);
|
||||
r = manager_load_unit(m, name, NULL, error, &u);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
@ -169,6 +169,10 @@ static int bus_service_set_transient_property(
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = sd_bus_message_exit_container(message);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (mode != UNIT_CHECK) {
|
||||
_cleanup_free_ char *buf = NULL;
|
||||
_cleanup_fclose_ FILE *f = NULL;
|
||||
|
@ -780,7 +780,7 @@ int bus_unit_queue_job(
|
||||
|
||||
path = job_dbus_path(j);
|
||||
if (!path)
|
||||
return r;
|
||||
return -ENOMEM;
|
||||
|
||||
return sd_bus_reply_method_return(message, "o", path);
|
||||
}
|
||||
@ -895,6 +895,10 @@ static int bus_unit_set_transient_property(
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = sd_bus_message_exit_container(message);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -941,6 +945,7 @@ int bus_unit_set_properties(
|
||||
r = sd_bus_message_rewind(message, false);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
for_real = true;
|
||||
continue;
|
||||
}
|
||||
@ -975,6 +980,10 @@ int bus_unit_set_properties(
|
||||
n += for_real;
|
||||
}
|
||||
|
||||
r = sd_bus_message_exit_container(message);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (commit && n > 0 && UNIT_VTABLE(u)->bus_commit_properties)
|
||||
UNIT_VTABLE(u)->bus_commit_properties(u);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user