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

Reply via email to