]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core: check if we got a valid personality during deserialization
authorFrantisek Sumsal <frantisek@sumsal.cz>
Mon, 30 Oct 2023 16:50:11 +0000 (17:50 +0100)
committerFrantisek Sumsal <frantisek@sumsal.cz>
Tue, 31 Oct 2023 16:34:37 +0000 (17:34 +0100)
src/core/execute-serialize.c

index 18033fe9c3007a142382e142d54e24cd042819e8..342883994a8c23fd7ac21a687c510c4207851ad5 100644 (file)
@@ -3395,9 +3395,11 @@ static int exec_context_deserialize(ExecContext *c, FILE *f) {
                         r = free_and_strdup(&c->smack_process_label, val);
                         if (r < 0)
                                 return r;
-                } else if ((val = startswith(l, "exec-context-personality=")))
+                } else if ((val = startswith(l, "exec-context-personality="))) {
                         c->personality = personality_from_string(val);
-                else if ((val = startswith(l, "exec-context-lock-personality="))) {
+                        if (c->personality == PERSONALITY_INVALID)
+                                return -EINVAL;
+                } else if ((val = startswith(l, "exec-context-lock-personality="))) {
                         r = parse_boolean(val);
                         if (r < 0)
                                 return r;