shutdown: let's not use exit() needlessly
authorLennart Poettering <lennart@poettering.net>
Wed, 21 Feb 2018 17:50:34 +0000 (18:50 +0100)
committerLennart Poettering <lennart@poettering.net>
Thu, 22 Feb 2018 09:46:26 +0000 (10:46 +0100)
Generally we prefer 'return' from main() over exit() so that automatic
cleanups and such work correct. Let's do that in shutdown.c too, becuase
there's not really any reason not to.

With this we are pretty good in consistently using return from main()
rather than exit() all across the codebase. Yay!

src/core/shutdown.c

index de689ae..58c9a9d 100644 (file)
@@ -485,12 +485,9 @@ int main(int argc, char *argv[]) {
 
         if (streq(arg_verb, "exit")) {
                 if (in_container)
-                        exit(arg_exit_code);
-                else {
-                        /* We cannot exit() on the host, fallback on another
-                         * method. */
-                        cmd = RB_POWER_OFF;
-                }
+                        return arg_exit_code;
+
+                cmd = RB_POWER_OFF; /* We cannot exit() on the host, fallback on another method. */
         }
 
         switch (cmd) {
@@ -542,7 +539,7 @@ int main(int argc, char *argv[]) {
                  * CAP_SYS_BOOT just exit, this will kill our
                  * container for good. */
                 log_info("Exiting container.");
-                exit(EXIT_SUCCESS);
+                return EXIT_SUCCESS;
         }
 
         r = log_error_errno(errno, "Failed to invoke reboot(): %m");