]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core: do early setup check for arguments with '=' too
authorMike Yuan <me@yhndnzj.com>
Sun, 2 Apr 2023 10:56:12 +0000 (18:56 +0800)
committerLuca Boccassi <luca.boccassi@gmail.com>
Sun, 2 Apr 2023 15:22:52 +0000 (16:22 +0100)
Follow-up for d2ebd50d7f9740dcf30e84efc75610af173967d2

We now modify our cmdline to use '=' for all arguments,
but didn't change early setup check to work with that.
So every daemon-reexec does a full setup, thus breaking
running user sessions.

Fixes #27106

src/core/main.c

index 4668d6bc84a12430f7341b4ef679d87382356918..bcc5e15a789ed144392e142fd12d1e5c2663d30c 100644 (file)
@@ -2744,7 +2744,7 @@ static bool early_skip_setup_check(int argc, char *argv[]) {
         for (int i = 1; i < argc; i++)
                 if (streq(argv[i], "--switched-root"))
                         return false; /* If we switched root, don't skip the setup. */
-                else if (streq(argv[i], "--deserialize"))
+                else if (startswith(argv[i], "--deserialize"))
                         found_deserialize = true;
 
         return found_deserialize; /* When we are deserializing, then we are reexecuting, hence avoid the extensive setup */