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;
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;
path = job_dbus_path(j);
if (!path)
- return r;
+ return -ENOMEM;
return sd_bus_reply_method_return(message, "o", path);
}
if (r < 0)
return r;
+ r = sd_bus_message_exit_container(message);
+ if (r < 0)
+ return r;
+
return 1;
}
r = sd_bus_message_rewind(message, false);
if (r < 0)
return r;
+
for_real = true;
continue;
}
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);