Hi Ophir, > -----Original Message----- > From: Ophir Munk <ophi...@nvidia.com> > Sent: Sunday, October 18, 2020 5:22 PM > Subject: [PATCH v1] app/regex: fix segfault in getopt_long call > > getopt_long() parses command-line arguments. One of its arguments > 'longopts' is a pointer to the first element of an array of struct > option. The last element of the array has to be filled with zeros > to mark the end of options. For example: > > struct option longopts[] = { > { "help", 0, 0, ARG_HELP}, > .... > /* End of options */ > { 0, 0, 0, 0 } > }; > > This commit adds the last element. Prior to this commit getopt_long() > continued parsing beyond the longopts[] array which occasionally caused > segmentation faults. > > Fixes: de06137cb295 ("app/regex: add RegEx test application") > Cc: sta...@dpdk.org > > Signed-off-by: Ophir Munk <ophi...@nvidia.com> > --- > app/test-regex/main.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/app/test-regex/main.c b/app/test-regex/main.c > index 0d35f45..e6080b4 100644 > --- a/app/test-regex/main.c > +++ b/app/test-regex/main.c > @@ -66,7 +66,9 @@ args_parse(int argc, char **argv, char *rules_file, char > *data_file, > /* Perf test only */ > { "perf", 0, 0, ARG_PERF_MODE}, > /* Number of iterations to run with perf test */ > - { "nb_iter", 1, 0, ARG_NUM_OF_ITERATIONS} > + { "nb_iter", 1, 0, ARG_NUM_OF_ITERATIONS}, > + /* End of options */ > + { 0, 0, 0, 0 } > }; > > argvopt = argv; > -- > 2.8.4
Acked-by: Ori Kam <or...@nvidia.com> Thanks, Ori