[dpdk-dev] [PATCH v1] app/regex: fix segfault in getopt_long call

Ori Kam orika at nvidia.com
Mon Oct 19 09:46:35 CEST 2020


Hi Ophir,

> -----Original Message-----
> From: Ophir Munk <ophirmu at 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: stable at dpdk.org
> 
> Signed-off-by: Ophir Munk <ophirmu at 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 <orika at nvidia.com>
Thanks,
Ori


More information about the dev mailing list