@@ -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
@@ -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;
@@ -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);
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@nwl.cc> --- iptables/nft-shared.h | 3 +-- iptables/xtables-restore.c | 11 +++++------ iptables/xtables-translate.c | 2 +- 3 files changed, 7 insertions(+), 9 deletions(-)