From: Emil Velikov Date: Wed, 9 Oct 2024 15:26:25 +0000 (+0100) Subject: tools/insmod: use single control variable X-Git-Tag: v34~244 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cd35ece58e23f2f5f6cb0b032d62cfcda9e94979;p=thirdparty%2Fkmod.git tools/insmod: use single control variable Currently we're returning success, if any of the pre libkmod checks fail. That's because err is our local variable, while r is the (exit) resutlt. In practise we don't need the distinction, so just drop the former. Reported by clang. Fixes: ca8f04e8 ("tools/insmod: add syslog and verbose options") Signed-off-by: Emil Velikov Link: https://github.com/kmod-project/kmod/pull/180 [ add blank lines, remove extra braces ] Signed-off-by: Lucas De Marchi --- diff --git a/tools/insmod.c b/tools/insmod.c index 60b8c7c3..b3d01c6a 100644 --- a/tools/insmod.c +++ b/tools/insmod.c @@ -66,7 +66,7 @@ static int do_insmod(int argc, char *argv[]) size_t optslen = 0; int verbose = LOG_ERR; int use_syslog = 0; - int i, err = 0, r = 0; + int i, r = 0; const char *null_config = NULL; unsigned int flags = 0; @@ -142,18 +142,16 @@ static int do_insmod(int argc, char *argv[]) log_setup_kmod_log(ctx, verbose); - err = kmod_module_new_from_path(ctx, filename, &mod); - if (err < 0) { - ERR("could not load module %s: %s\n", filename, strerror(-err)); - r++; + r = kmod_module_new_from_path(ctx, filename, &mod); + if (r < 0) { + ERR("could not load module %s: %s\n", filename, strerror(-r)); goto end; } - err = kmod_module_insert_module(mod, flags, opts); - if (err < 0) { - ERR("could not insert module %s: %s\n", filename, mod_strerror(-err)); - r++; - } + r = kmod_module_insert_module(mod, flags, opts); + if (r < 0) + ERR("could not insert module %s: %s\n", filename, mod_strerror(-r)); + kmod_module_unref(mod); end: @@ -161,7 +159,7 @@ end: free(opts); log_close(); - return err >= 0 ? EXIT_SUCCESS : EXIT_FAILURE; + return r == 0 ? EXIT_SUCCESS : EXIT_FAILURE; } const struct kmod_cmd kmod_cmd_compat_insmod = {