]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
user-sessions: let's simplify our code paths a bit
authorLennart Poettering <lennart@poettering.net>
Wed, 21 Feb 2018 22:42:58 +0000 (23:42 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 21 Feb 2018 22:44:39 +0000 (23:44 +0100)
Let's always go through mac_selinux_finish(), by making our
success/failure codepaths more alike.

This also saves a few lines of code. Yay!

src/user-sessions/user-sessions.c

index 1aed9adae732534cc7170e5fe86eb4621fb533cc..5e02ede402afa257b09c5fada2184b5307806402 100644 (file)
@@ -48,22 +48,19 @@ int main(int argc, char*argv[]) {
         if (streq(argv[1], "start")) {
                 r = unlink_or_warn("/run/nologin");
                 k = unlink_or_warn("/etc/nologin");
-                if (r < 0 || k < 0)
-                        return EXIT_FAILURE;
+                if (k < 0 && r >= 0)
+                        r = k;
 
         } else if (streq(argv[1], "stop")) {
                 r = write_string_file_atomic_label("/run/nologin", "System is going down.");
-                if (r < 0) {
+                if (r < 0)
                         log_error_errno(r, "Failed to create /run/nologin: %m");
-                        return EXIT_FAILURE;
-                }
 
         } else {
-                log_error("Unknown verb %s.", argv[1]);
-                return EXIT_FAILURE;
+                log_error("Unknown verb '%s'.", argv[1]);
+                r = -EINVAL;
         }
 
         mac_selinux_finish();
-
-        return EXIT_SUCCESS;
+        return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
 }