[dpdk-stable] [dpdk-dev] [PATCH v1] app/regex: fix segfault in getopt_long call
Ophir Munk
ophirmu at nvidia.com
Mon Oct 19 10:39:41 CEST 2020
Adding Thomas Monjalon
Thomas - when merging can you please remove the line: Cc: stable at dpdk.org ?
> -----Original Message-----
> From: Lukasz Wojciechowski <l.wojciechow at partner.samsung.com>
> Sent: Monday, October 19, 2020 11:13 AM
> To: Ori Kam <orika at nvidia.com>; Ophir Munk <ophirmu at nvidia.com>;
> dev at dpdk.org; Raslan Darawsheh <rasland at nvidia.com>
> Cc: stable at dpdk.org; "'Lukasz Wojciechowski'",
> <l.wojciechow at partner.samsung.com>
> Subject: Re: [dpdk-dev] [PATCH v1] app/regex: fix segfault in getopt_long
> call
>
> Hi,
>
> W dniu 19.10.2020 o 09:46, Ori Kam pisze:
> > 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>
> Acked-by: Lukasz Wojciechowski <l.wojciechow at partner.samsung.com>
> > Thanks,
> > Ori
>
> Best regards
>
> Lukasz
>
> --
> Lukasz Wojciechowski
> Principal Software Engineer
>
> Samsung R&D Institute Poland
> Samsung Electronics
> Office +48 22 377 88 25
> l.wojciechow at partner.samsung.com
More information about the stable
mailing list