From: Yu Watanabe Date: Tue, 20 Nov 2018 08:56:47 +0000 (+0900) Subject: fstab-generator: use static destructor and DEFINE_MAIN_FUNCTION() macro X-Git-Tag: v240~258^2~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a4ef3e4dbb6a03a4d0e0270c637c2fda294275ce;p=thirdparty%2Fsystemd.git fstab-generator: use static destructor and DEFINE_MAIN_FUNCTION() macro --- diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index 8225c1e8690..5098336abed 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -14,6 +14,7 @@ #include "fstab-util.h" #include "generator.h" #include "log.h" +#include "main-func.h" #include "mkdir.h" #include "mount-setup.h" #include "mount-util.h" @@ -51,6 +52,15 @@ static char *arg_usr_fstype = NULL; static char *arg_usr_options = NULL; static VolatileMode arg_volatile_mode = _VOLATILE_MODE_INVALID; +STATIC_DESTRUCTOR_REGISTER(arg_root_what, freep); +STATIC_DESTRUCTOR_REGISTER(arg_root_fstype, freep); +STATIC_DESTRUCTOR_REGISTER(arg_root_options, freep); +STATIC_DESTRUCTOR_REGISTER(arg_root_hash, freep); +STATIC_DESTRUCTOR_REGISTER(arg_usr_what, freep); +STATIC_DESTRUCTOR_REGISTER(arg_usr_fstype, freep); +STATIC_DESTRUCTOR_REGISTER(arg_usr_options, freep); + + static int write_options(FILE *f, const char *options) { _cleanup_free_ char *o = NULL; @@ -857,12 +867,12 @@ static int determine_root(void) { return 1; } -int main(int argc, char *argv[]) { - int r = 0; +static int run(int argc, char *argv[]) { + int r; if (argc > 1 && argc != 4) { log_error("This program takes three or no arguments."); - return EXIT_FAILURE; + return -EINVAL; } if (argc > 1) @@ -917,14 +927,7 @@ int main(int argc, char *argv[]) { } } - free(arg_root_what); - free(arg_root_fstype); - free(arg_root_options); - free(arg_root_hash); - - free(arg_usr_what); - free(arg_usr_fstype); - free(arg_usr_options); - - return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; + return r; } + +DEFINE_MAIN_FUNCTION(run);