summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authorBenjamin Robin <dev@benjarobin.fr>2021-02-16 23:19:37 +0100
committerBenjamin Robin <dev@benjarobin.fr>2021-02-16 23:34:58 +0100
commit9de42a6a5f3c83309c24d8688dbbc07941f14146 (patch)
tree48f4e6e6478dc62079d24755d5df1a5aa47395b3 /src/shared
parent925484aacbf2c70db7fc2e7a89c80a8d02ccf3b8 (diff)
downloadsystemd-9de42a6a5f3c83309c24d8688dbbc07941f14146.tar.gz
shared: use -EINVAL for _EXEC_COMMAND_FLAGS_INVALID
Follow-up of #11484
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/exec-util.c10
-rw-r--r--src/shared/exec-util.h2
2 files changed, 7 insertions, 5 deletions
diff --git a/src/shared/exec-util.c b/src/shared/exec-util.c
index 6355ce8ce4..e4769530a3 100644
--- a/src/shared/exec-util.c
+++ b/src/shared/exec-util.c
@@ -381,10 +381,9 @@ int exec_command_flags_from_strv(char **ex_opts, ExecCommandFlags *flags) {
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;
@@ -400,6 +399,9 @@ int exec_command_flags_to_strv(ExecCommandFlags flags, char ***ex_opts) {
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);
diff --git a/src/shared/exec-util.h b/src/shared/exec-util.h
index 5bd4a3785f..9ce5324de9 100644
--- a/src/shared/exec-util.h
+++ b/src/shared/exec-util.h
@@ -27,7 +27,7 @@ typedef enum ExecCommandFlags {
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(