From: Yu Watanabe Date: Tue, 20 Nov 2018 06:35:07 +0000 (+0900) Subject: bootctl: use static destructor and DEFINE_MAIN_FUNCTION() macro X-Git-Tag: v240~258^2~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=608f8ec92ef8433cb6e9a302d0e312599c421ac2;p=thirdparty%2Fsystemd.git bootctl: use static destructor and DEFINE_MAIN_FUNCTION() macro --- diff --git a/src/boot/bootctl.c b/src/boot/bootctl.c index 427faf8b242..59241e5ee43 100644 --- a/src/boot/bootctl.c +++ b/src/boot/bootctl.c @@ -29,6 +29,7 @@ #include "fileio.h" #include "fs-util.h" #include "locale-util.h" +#include "main-func.h" #include "pager.h" #include "parse-util.h" #include "rm-rf.h" @@ -47,6 +48,8 @@ static bool arg_print_path = false; static bool arg_touch_variables = true; static PagerFlags arg_pager_flags = 0; +STATIC_DESTRUCTOR_REGISTER(arg_path, freep); + static int acquire_esp( bool unprivileged_mode, uint32_t *ret_part, @@ -1251,7 +1254,7 @@ static int bootctl_main(int argc, char *argv[]) { return dispatch_verb(argc, argv, verbs, NULL); } -int main(int argc, char *argv[]) { +static int run(int argc, char *argv[]) { int r; log_parse_environment(); @@ -1263,13 +1266,9 @@ int main(int argc, char *argv[]) { r = parse_argv(argc, argv); if (r <= 0) - goto finish; - - r = bootctl_main(argc, argv); - - finish: - pager_close(); - free(arg_path); + return r; - return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; + return bootctl_main(argc, argv); } + +DEFINE_MAIN_FUNCTION(run);