DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v1] app/regex: fix segfault in getopt_long call
@ 2020-10-18 14:21 Ophir Munk
  2020-10-19  7:46 ` Ori Kam
  0 siblings, 1 reply; 6+ messages in thread
From: Ophir Munk @ 2020-10-18 14:21 UTC (permalink / raw)
  To: dev, Raslan Darawsheh, Ori Kam; +Cc: Ophir Munk, stable

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@dpdk.org

Signed-off-by: Ophir Munk <ophirmu@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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] [PATCH v1] app/regex: fix segfault in getopt_long call
  2020-10-18 14:21 [dpdk-dev] [PATCH v1] app/regex: fix segfault in getopt_long call Ophir Munk
@ 2020-10-19  7:46 ` Ori Kam
  2020-10-19  8:13   ` Lukasz Wojciechowski
  0 siblings, 1 reply; 6+ messages in thread
From: Ori Kam @ 2020-10-19  7:46 UTC (permalink / raw)
  To: Ophir Munk, dev, Raslan Darawsheh; +Cc: Ophir Munk, stable

Hi Ophir,

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] [PATCH v1] app/regex: fix segfault in getopt_long call
  2020-10-19  7:46 ` Ori Kam
@ 2020-10-19  8:13   ` Lukasz Wojciechowski
  2020-10-19  8:39     ` Ophir Munk
  2020-10-19 22:06     ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon
  0 siblings, 2 replies; 6+ messages in thread
From: Lukasz Wojciechowski @ 2020-10-19  8:13 UTC (permalink / raw)
  To: Ori Kam, Ophir Munk, dev, Raslan Darawsheh
  Cc: stable, "'Lukasz Wojciechowski'",

Hi,

W dniu 19.10.2020 o 09:46, Ori Kam pisze:
> Hi Ophir,
>
>> -----Original Message-----
>> From: Ophir Munk <ophirmu@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@dpdk.org
>>
>> Signed-off-by: Ophir Munk <ophirmu@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@nvidia.com>
Acked-by: Lukasz Wojciechowski <l.wojciechow@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@partner.samsung.com


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] [PATCH v1] app/regex: fix segfault in getopt_long call
  2020-10-19  8:13   ` Lukasz Wojciechowski
@ 2020-10-19  8:39     ` Ophir Munk
  2020-10-19 22:05       ` Thomas Monjalon
  2020-10-19 22:06     ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon
  1 sibling, 1 reply; 6+ messages in thread
From: Ophir Munk @ 2020-10-19  8:39 UTC (permalink / raw)
  To: Lukasz Wojciechowski, Ori Kam, dev, Raslan Darawsheh
  Cc: stable, NBU-Contact-Thomas Monjalon

Adding Thomas Monjalon
Thomas - when merging can you please remove the line: Cc: stable@dpdk.org ?

> -----Original Message-----
> From: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
> Sent: Monday, October 19, 2020 11:13 AM
> To: Ori Kam <orika@nvidia.com>; Ophir Munk <ophirmu@nvidia.com>;
> dev@dpdk.org; Raslan Darawsheh <rasland@nvidia.com>
> Cc: stable@dpdk.org; "'Lukasz Wojciechowski'",
> <l.wojciechow@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@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@dpdk.org
> >>
> >> Signed-off-by: Ophir Munk <ophirmu@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@nvidia.com>
> Acked-by: Lukasz Wojciechowski <l.wojciechow@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@partner.samsung.com


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] [PATCH v1] app/regex: fix segfault in getopt_long call
  2020-10-19  8:39     ` Ophir Munk
@ 2020-10-19 22:05       ` Thomas Monjalon
  0 siblings, 0 replies; 6+ messages in thread
From: Thomas Monjalon @ 2020-10-19 22:05 UTC (permalink / raw)
  To: Ophir Munk; +Cc: Lukasz Wojciechowski, Ori Kam, dev, Raslan Darawsheh, stable

19/10/2020 10:39, Ophir Munk:
> Adding Thomas Monjalon
> Thomas - when merging can you please remove the line: Cc: stable@dpdk.org ?

No it should be kept because the bug is in a previous release.




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] [dpdk-stable] [PATCH v1] app/regex: fix segfault in getopt_long call
  2020-10-19  8:13   ` Lukasz Wojciechowski
  2020-10-19  8:39     ` Ophir Munk
@ 2020-10-19 22:06     ` Thomas Monjalon
  1 sibling, 0 replies; 6+ messages in thread
From: Thomas Monjalon @ 2020-10-19 22:06 UTC (permalink / raw)
  To: Ophir Munk; +Cc: Ori Kam, dev, Raslan Darawsheh, stable, Lukasz Wojciechowski

> >> 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@dpdk.org
> >>
> >> Signed-off-by: Ophir Munk <ophirmu@nvidia.com>
> > Acked-by: Ori Kam <orika@nvidia.com>
> Acked-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>

Applied, thanks




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-10-19 22:06 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-18 14:21 [dpdk-dev] [PATCH v1] app/regex: fix segfault in getopt_long call Ophir Munk
2020-10-19  7:46 ` Ori Kam
2020-10-19  8:13   ` Lukasz Wojciechowski
2020-10-19  8:39     ` Ophir Munk
2020-10-19 22:05       ` Thomas Monjalon
2020-10-19 22:06     ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).