STRV_FOREACH(opt, ex_opts) {
ex_flag = exec_command_flags_from_string(*opt);
- if (ex_flag >= 0)
- ret_flags |= ex_flag;
- else
- return -EINVAL;
+ if (ex_flag < 0)
+ return ex_flag;
+ ret_flags |= ex_flag;
}
*flags = ret_flags;
assert(ex_opts);
+ if (flags < 0)
+ return flags;
+
for (i = 0; it != 0; it &= ~(1 << i), i++) {
if (FLAGS_SET(flags, (1 << i))) {
str = exec_command_flags_to_string(1 << i);
EXEC_COMMAND_NO_SETUID = 1 << 2,
EXEC_COMMAND_AMBIENT_MAGIC = 1 << 3,
EXEC_COMMAND_NO_ENV_EXPAND = 1 << 4,
- _EXEC_COMMAND_FLAGS_INVALID = -1,
+ _EXEC_COMMAND_FLAGS_INVALID = -EINVAL,
} ExecCommandFlags;
int execute_directories(