app/pdump: close program if --pdump argument is missing
Checks
Commit Message
--pdump is a mandatory argument in pdump application.
It should print usage and exit if --pdump argument
is missing. The application is not closing and getting
stuck. Made the change to print usage and exit when
this argument is missing.
Signed-off-by: usman.tanveer <usman.tanveer@emumba.com>
---
app/pdump/main.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
Comments
On Wed, 2 Mar 2022 14:26:14 +0500
"usman.tanveer" <usman.tanveer@emumba.com> wrote:
> --pdump is a mandatory argument in pdump application.
> It should print usage and exit if --pdump argument
> is missing. The application is not closing and getting
> stuck. Made the change to print usage and exit when
> this argument is missing.
>
> Signed-off-by: usman.tanveer <usman.tanveer@emumba.com>
Maybe pdump could just do something sane with no arguments.
That is one of the issues I tried to address by rewriting it.
Ideally, existing pdump can be deprecated and removed in 22.11?
The 20.11 release is not coming out till August, in the meantime, this
patch can be applied to print help if mandatory argument is not
passed.
On Wed, Mar 2, 2022 at 9:52 PM Stephen Hemminger
<stephen@networkplumber.org> wrote:
>
> On Wed, 2 Mar 2022 14:26:14 +0500
> "usman.tanveer" <usman.tanveer@emumba.com> wrote:
>
> > --pdump is a mandatory argument in pdump application.
> > It should print usage and exit if --pdump argument
> > is missing. The application is not closing and getting
> > stuck. Made the change to print usage and exit when
> > this argument is missing.
> >
> > Signed-off-by: usman.tanveer <usman.tanveer@emumba.com>
>
> Maybe pdump could just do something sane with no arguments.
> That is one of the issues I tried to address by rewriting it.
>
> Ideally, existing pdump can be deprecated and removed in 22.11?
@@ -383,14 +383,17 @@ launch_args_parse(int argc, char **argv, char *prgname)
{
int opt, ret;
int option_index;
+ bool pdump_flag = false;
static struct option long_option[] = {
{CMD_LINE_OPT_PDUMP, 1, 0, CMD_LINE_OPT_PDUMP_NUM},
{CMD_LINE_OPT_MULTI, 0, 0, CMD_LINE_OPT_MULTI_NUM},
{NULL, 0, 0, 0}
};
- if (argc == 1)
+ if (argc == 1) {
pdump_usage(prgname);
+ return -1;
+ }
/* Parse command line */
while ((opt = getopt_long(argc, argv, " ",
@@ -402,6 +405,7 @@ launch_args_parse(int argc, char **argv, char *prgname)
pdump_usage(prgname);
return -1;
}
+ pdump_flag = true;
break;
case CMD_LINE_OPT_MULTI_NUM:
multiple_core_capture = 1;
@@ -412,6 +416,11 @@ launch_args_parse(int argc, char **argv, char *prgname)
}
}
+ if (pdump_flag == false) {
+ pdump_usage(prgname);
+ return -1;
+ }
+
return 0;
}
@@ -991,11 +1000,9 @@ main(int argc, char **argv)
argv += (diag - 2);
/* parse app arguments */
- if (argc > 1) {
- ret = launch_args_parse(argc, argv, argp[0]);
- if (ret < 0)
- rte_exit(EXIT_FAILURE, "Invalid argument\n");
- }
+ ret = launch_args_parse(argc, argv, argp[0]);
+ if (ret < 0)
+ rte_exit(EXIT_FAILURE, "Invalid argument\n");
/* create mempool, ring and vdevs info */
create_mp_ring_vdev();