Instead of setting newargv[0] to argv[0]'s value, just use whatever xt_params->program_name contains. The latter is arbitrarily defined, but may still be more correct than real argv[0] which may simply be for instance xtables-nft-multi. Either way, there is no practical significance since newargv[0] is used exclusively in debug output. Signed-off-by: Phil Sutter <phil@xxxxxx> --- iptables/nft-shared.h | 3 +-- iptables/xtables-restore.c | 11 +++++------ iptables/xtables-translate.c | 2 +- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/iptables/nft-shared.h b/iptables/nft-shared.h index facad6d02a7ec..f1efab80ff621 100644 --- a/iptables/nft-shared.h +++ b/iptables/nft-shared.h @@ -263,8 +263,7 @@ struct nft_xt_restore_cb { void xtables_restore_parse(struct nft_handle *h, struct nft_xt_restore_parse *p, - struct nft_xt_restore_cb *cb, - int argc, char *argv[]); + struct nft_xt_restore_cb *cb); void nft_check_xt_legacy(int family, bool is_ipt_save); #endif diff --git a/iptables/xtables-restore.c b/iptables/xtables-restore.c index 2519005590ff1..48999d1ec8a27 100644 --- a/iptables/xtables-restore.c +++ b/iptables/xtables-restore.c @@ -86,8 +86,7 @@ static const struct xtc_ops xtc_ops = { void xtables_restore_parse(struct nft_handle *h, struct nft_xt_restore_parse *p, - struct nft_xt_restore_cb *cb, - int argc, char *argv[]) + struct nft_xt_restore_cb *cb) { const struct builtin_table *curtable = NULL; char buffer[10240]; @@ -234,7 +233,7 @@ void xtables_restore_parse(struct nft_handle *h, /* reset the newargv */ newargc = 0; - add_argv(argv[0], 0); + add_argv(xt_params->program_name, 0); add_argv("-t", 0); add_argv(curtable->name, 0); @@ -405,7 +404,7 @@ xtables_restore_main(int family, const char *progname, int argc, char *argv[]) exit(EXIT_FAILURE); } - xtables_restore_parse(&h, &p, &restore_cb, argc, argv); + xtables_restore_parse(&h, &p, &restore_cb); nft_fini(&h); fclose(p.in); @@ -471,7 +470,7 @@ int xtables_eb_restore_main(int argc, char *argv[]) nft_init_eb(&h, "ebtables-restore"); h.noflush = noflush; - xtables_restore_parse(&h, &p, &ebt_restore_cb, argc, argv); + xtables_restore_parse(&h, &p, &ebt_restore_cb); nft_fini(&h); return 0; @@ -495,7 +494,7 @@ int xtables_arp_restore_main(int argc, char *argv[]) struct nft_handle h; nft_init_arp(&h, "arptables-restore"); - xtables_restore_parse(&h, &p, &arp_restore_cb, argc, argv); + xtables_restore_parse(&h, &p, &arp_restore_cb); nft_fini(&h); return 0; diff --git a/iptables/xtables-translate.c b/iptables/xtables-translate.c index 4ae9ff57c0eb3..64e7667a253e7 100644 --- a/iptables/xtables-translate.c +++ b/iptables/xtables-translate.c @@ -535,7 +535,7 @@ static int xtables_restore_xlate_main(int family, const char *progname, printf("# Translated by %s v%s on %s", argv[0], PACKAGE_VERSION, ctime(&now)); - xtables_restore_parse(&h, &p, &cb_xlate, argc, argv); + xtables_restore_parse(&h, &p, &cb_xlate); printf("# Completed on %s", ctime(&now)); nft_fini(&h); -- 2.23.0