[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