context->protect_home,
context->protect_system,
context->mount_flags);
- if (err < 0) {
+
+ if (err == -EPERM)
+ log_error_unit(params->unit_id, "Failed to setup namespace, ignoring: %s", strerror(-err));
+ else if (err < 0) {
*error = EXIT_NAMESPACE;
return err;
}
err = aa_change_onexec(context->apparmor_profile);
if (err < 0 && !context->apparmor_profile_ignore) {
*error = EXIT_APPARMOR_PROFILE;
- return err;
+ return -errno;
}
}
#endif
return 0;
}
+int exec_command_append(ExecCommand *c, const char *path, ...) {
+ _cleanup_strv_free_ char **l = NULL;
+ va_list ap;
+ int r;
+
+ assert(c);
+ assert(path);
+
+ va_start(ap, path);
+ l = strv_new_ap(path, ap);
+ va_end(ap);
+
+ if (!l)
+ return -ENOMEM;
+
+ r = strv_extend_strv(&c->argv, l);
+ if (r < 0)
+ return r;
+
+ return 0;
+}
+
+
static int exec_runtime_allocate(ExecRuntime **rt) {
if (*rt)