* [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not null terminated
@ 2016-11-03 12:12 Fan Zhang
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not terminated issue Fan Zhang
` (3 more replies)
0 siblings, 4 replies; 17+ messages in thread
From: Fan Zhang @ 2016-11-03 12:12 UTC (permalink / raw)
To: dev
Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")
Coverity issue: 137854
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
---
examples/ipsec-secgw/parser.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/ipsec-secgw/parser.c b/examples/ipsec-secgw/parser.c
index 99bdfc5..e09a7c0 100644
--- a/examples/ipsec-secgw/parser.c
+++ b/examples/ipsec-secgw/parser.c
@@ -248,7 +248,7 @@ parse_ipv4_addr(const char *token, struct in_addr *ipv4, uint32_t *mask)
if (mask)
*mask = atoi(pch);
} else {
- strncpy(ip_str, token, sizeof(ip_str));
+ strncpy(ip_str, token, sizeof(ip_str) - 1);
if (mask)
*mask = 0;
}
--
2.5.5
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not terminated issue
2016-11-03 12:12 [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not null terminated Fan Zhang
@ 2016-11-03 12:12 ` Fan Zhang
2016-11-04 14:16 ` Ferruh Yigit
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix copy into fixed size buffer issue Fan Zhang
` (2 subsequent siblings)
3 siblings, 1 reply; 17+ messages in thread
From: Fan Zhang @ 2016-11-03 12:12 UTC (permalink / raw)
To: dev
Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")
Coverity issue: 137855
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
---
examples/ipsec-secgw/parser.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/ipsec-secgw/parser.c b/examples/ipsec-secgw/parser.c
index 99bdfc5..ede08d8 100644
--- a/examples/ipsec-secgw/parser.c
+++ b/examples/ipsec-secgw/parser.c
@@ -277,7 +277,7 @@ parse_ipv6_addr(const char *token, struct in6_addr *ipv6, uint32_t *mask)
if (mask)
*mask = atoi(pch);
} else {
- strncpy(ip_str, token, sizeof(ip_str));
+ strncpy(ip_str, token, sizeof(ip_str) - 1);
if (mask)
*mask = 0;
}
--
2.5.5
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH] examples/ipsec-secgw: fix copy into fixed size buffer issue
2016-11-03 12:12 [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not null terminated Fan Zhang
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not terminated issue Fan Zhang
@ 2016-11-03 12:12 ` Fan Zhang
2016-11-04 14:15 ` Ferruh Yigit
2016-11-07 14:21 ` [dpdk-dev] [PATCH v2] " Fan Zhang
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix pointer to local outside scope Fan Zhang
2016-11-04 14:18 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not null terminated Ferruh Yigit
3 siblings, 2 replies; 17+ messages in thread
From: Fan Zhang @ 2016-11-03 12:12 UTC (permalink / raw)
To: dev
Coverity issue: 137875
Fixes: 0d547ed0 ("examples/ipsec-secgw: support configuration
file")
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
---
examples/ipsec-secgw/sa.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/ipsec-secgw/sa.c b/examples/ipsec-secgw/sa.c
index 9e2c8a9..c891be2 100644
--- a/examples/ipsec-secgw/sa.c
+++ b/examples/ipsec-secgw/sa.c
@@ -177,7 +177,7 @@ parse_key_string(const char *key_str, uint8_t *key)
pt_end = strchr(pt_start, ':');
if (pt_end == NULL)
- strncpy(sub_str, pt_start, strlen(pt_start));
+ strncpy(sub_str, pt_start, strlen(sub_str) - 1);
else {
if (pt_end - pt_start > 2)
return 0;
--
2.5.5
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH] examples/ipsec-secgw: fix pointer to local outside scope
2016-11-03 12:12 [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not null terminated Fan Zhang
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not terminated issue Fan Zhang
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix copy into fixed size buffer issue Fan Zhang
@ 2016-11-03 12:12 ` Fan Zhang
2016-11-04 14:15 ` Ferruh Yigit
` (2 more replies)
2016-11-04 14:18 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not null terminated Ferruh Yigit
3 siblings, 3 replies; 17+ messages in thread
From: Fan Zhang @ 2016-11-03 12:12 UTC (permalink / raw)
To: dev
Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")
Coverity issue: 137871
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
---
examples/ipsec-secgw/parser.c | 124 +++++++++++++++++++++---------------------
1 file changed, 62 insertions(+), 62 deletions(-)
diff --git a/examples/ipsec-secgw/parser.c b/examples/ipsec-secgw/parser.c
index 99bdfc5..45473c7 100644
--- a/examples/ipsec-secgw/parser.c
+++ b/examples/ipsec-secgw/parser.c
@@ -503,86 +503,86 @@ parse_cfg_file(const char *cfg_filename)
do {
char oneline[1024];
-
+ char *pos;
get_s = fgets(oneline, 1024, f);
- if (get_s) {
- char *pos;
- line_num++;
+ if (!get_s)
+ break;
- if (strlen(oneline) > 1022) {
- rte_panic("%s:%u: error: the line "
- "contains more characters the "
- "parser can handle\n",
- cfg_filename, line_num);
- goto error_exit;
- }
+ line_num++;
- /* process comment char '#' */
- if (oneline[0] == '#')
- continue;
+ if (strlen(oneline) > 1022) {
+ rte_panic("%s:%u: error: the line "
+ "contains more characters the "
+ "parser can handle\n",
+ cfg_filename, line_num);
+ goto error_exit;
+ }
- pos = strchr(oneline, '#');
- if (pos != NULL)
- *pos = '\0';
-
- /* process line concatenator '\' */
- pos = strchr(oneline, 92);
- if (pos != NULL) {
- if (pos != oneline+strlen(oneline) - 2) {
- rte_panic("%s:%u: error: no "
- "character should exist "
- "after '\\' symbol\n",
- cfg_filename, line_num);
- goto error_exit;
- }
-
- *pos = '\0';
-
- if (strlen(oneline) + strlen(str) > 1022) {
- rte_panic("%s:%u: error: the "
- "concatenated line "
- "contains more characters "
- "the parser can handle\n",
- cfg_filename, line_num);
- goto error_exit;
- }
-
- strncpy(str + strlen(str), oneline,
- strlen(oneline));
+ /* process comment char '#' */
+ if (oneline[0] == '#')
+ continue;
- continue;
+ pos = strchr(oneline, '#');
+ if (pos != NULL)
+ *pos = '\0';
+
+ /* process line concatenator '\' */
+ pos = strchr(oneline, 92);
+ if (pos != NULL) {
+ if (pos != oneline+strlen(oneline) - 2) {
+ rte_panic("%s:%u: error: no "
+ "character should exist "
+ "after '\\' symbol\n",
+ cfg_filename, line_num);
+ goto error_exit;
}
- /* copy the line to str and process */
+ *pos = '\0';
+
if (strlen(oneline) + strlen(str) > 1022) {
- rte_panic("%s:%u: error: the line "
- "contains more characters the "
- "parser can handle\n",
+ rte_panic("%s:%u: error: the "
+ "concatenated line "
+ "contains more characters "
+ "the parser can handle\n",
cfg_filename, line_num);
goto error_exit;
}
+
strncpy(str + strlen(str), oneline,
strlen(oneline));
- str[strlen(str)] = '\n';
- if (cmdline_parse(cl, str) < 0) {
- rte_panic("%s:%u: error: parsing \"%s\" "
- "failed\n", cfg_filename,
- line_num, str);
- goto error_exit;
- }
+ continue;
+ }
- if (status.status < 0) {
- rte_panic("%s:%u: error: %s",
- cfg_filename, line_num,
- status.parse_msg);
- goto error_exit;
- }
+ /* copy the line to str and process */
+ if (strlen(oneline) + strlen(str) > 1022) {
+ rte_panic("%s:%u: error: the line "
+ "contains more characters the "
+ "parser can handle\n",
+ cfg_filename, line_num);
+ goto error_exit;
+ }
+ strncpy(str + strlen(str), oneline,
+ strlen(oneline));
+
+ str[strlen(str)] = '\n';
+ if (cmdline_parse(cl, str) < 0) {
+ rte_panic("%s:%u: error: parsing \"%s\" "
+ "failed\n", cfg_filename,
+ line_num, str);
+ goto error_exit;
+ }
- memset(str, 0, 1024);
+ if (status.status < 0) {
+ rte_panic("%s:%u: error: %s",
+ cfg_filename, line_num,
+ status.parse_msg);
+ goto error_exit;
}
- } while (get_s != NULL);
+
+ memset(str, 0, 1024);
+ } while (1);
cmdline_stdin_exit(cl);
fclose(f);
--
2.5.5
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH] examples/ipsec-secgw: fix pointer to local outside scope
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix pointer to local outside scope Fan Zhang
@ 2016-11-04 14:15 ` Ferruh Yigit
2016-11-07 14:22 ` [dpdk-dev] [PATCH v2] " Fan Zhang
2016-11-07 17:25 ` [dpdk-dev] [PATCH v3] " Fan Zhang
2 siblings, 0 replies; 17+ messages in thread
From: Ferruh Yigit @ 2016-11-04 14:15 UTC (permalink / raw)
To: Fan Zhang, dev
On 11/3/2016 12:12 PM, Fan Zhang wrote:
> Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")
> Coverity issue: 137871
>
> Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
> ---
Coverity issue fix looks good to me, but since indentation level reduced
one level, many line wrappings can be re-arranged.
Apart from line wrappings,
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH] examples/ipsec-secgw: fix copy into fixed size buffer issue
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix copy into fixed size buffer issue Fan Zhang
@ 2016-11-04 14:15 ` Ferruh Yigit
2016-11-07 14:21 ` [dpdk-dev] [PATCH v2] " Fan Zhang
1 sibling, 0 replies; 17+ messages in thread
From: Ferruh Yigit @ 2016-11-04 14:15 UTC (permalink / raw)
To: Fan Zhang, dev
On 11/3/2016 12:12 PM, Fan Zhang wrote:
> Coverity issue: 137875
> Fixes: 0d547ed0 ("examples/ipsec-secgw: support configuration
> file")
>
> Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
> ---
> examples/ipsec-secgw/sa.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/examples/ipsec-secgw/sa.c b/examples/ipsec-secgw/sa.c
> index 9e2c8a9..c891be2 100644
> --- a/examples/ipsec-secgw/sa.c
> +++ b/examples/ipsec-secgw/sa.c
> @@ -177,7 +177,7 @@ parse_key_string(const char *key_str, uint8_t *key)
> pt_end = strchr(pt_start, ':');
>
> if (pt_end == NULL)
> - strncpy(sub_str, pt_start, strlen(pt_start));
> + strncpy(sub_str, pt_start, strlen(sub_str) - 1);
sub_str initial value is not known, "strlen(sub_str) - 1" leaves last
byte of the string random, instead of intended NULL.
Also sub_str has hardcoded length of 3, it can be good to confirm NULL
terminated byte taken into account, and number actually can be maximum
two digits long.
> else {
> if (pt_end - pt_start > 2)
> return 0;
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not terminated issue
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not terminated issue Fan Zhang
@ 2016-11-04 14:16 ` Ferruh Yigit
2016-11-06 23:38 ` Thomas Monjalon
0 siblings, 1 reply; 17+ messages in thread
From: Ferruh Yigit @ 2016-11-04 14:16 UTC (permalink / raw)
To: Fan Zhang, dev
On 11/3/2016 12:12 PM, Fan Zhang wrote:
> Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")
> Coverity issue: 137855
>
> Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not null terminated
2016-11-03 12:12 [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not null terminated Fan Zhang
` (2 preceding siblings ...)
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix pointer to local outside scope Fan Zhang
@ 2016-11-04 14:18 ` Ferruh Yigit
2016-11-06 23:38 ` Thomas Monjalon
3 siblings, 1 reply; 17+ messages in thread
From: Ferruh Yigit @ 2016-11-04 14:18 UTC (permalink / raw)
To: Fan Zhang, dev
On 11/3/2016 12:12 PM, Fan Zhang wrote:
> Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")
> Coverity issue: 137854
>
> Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Minor nit, for all coverity fixes, defined commit log format is:
Coverity issue: xxxxx
Fixes: .....
Basically two lines should be swapped, but I guess this can be fixed
while applying instead of sending a new version for this.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not terminated issue
2016-11-04 14:16 ` Ferruh Yigit
@ 2016-11-06 23:38 ` Thomas Monjalon
0 siblings, 0 replies; 17+ messages in thread
From: Thomas Monjalon @ 2016-11-06 23:38 UTC (permalink / raw)
To: Fan Zhang; +Cc: dev, Ferruh Yigit
2016-11-04 14:16, Ferruh Yigit:
> On 11/3/2016 12:12 PM, Fan Zhang wrote:
> > Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")
> > Coverity issue: 137855
> >
> > Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
>
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Merged with previous patch and applied
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not null terminated
2016-11-04 14:18 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not null terminated Ferruh Yigit
@ 2016-11-06 23:38 ` Thomas Monjalon
0 siblings, 0 replies; 17+ messages in thread
From: Thomas Monjalon @ 2016-11-06 23:38 UTC (permalink / raw)
To: Fan Zhang; +Cc: dev, Ferruh Yigit
2016-11-04 14:18, Ferruh Yigit:
> On 11/3/2016 12:12 PM, Fan Zhang wrote:
> > Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")
> > Coverity issue: 137854
> >
> > Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
>
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
>
>
> Minor nit, for all coverity fixes, defined commit log format is:
>
> Coverity issue: xxxxx
> Fixes: .....
>
> Basically two lines should be swapped, but I guess this can be fixed
> while applying instead of sending a new version for this.
Applied, thanks
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH v2] examples/ipsec-secgw: fix copy into fixed size buffer issue
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix copy into fixed size buffer issue Fan Zhang
2016-11-04 14:15 ` Ferruh Yigit
@ 2016-11-07 14:21 ` Fan Zhang
2016-11-07 15:59 ` Ferruh Yigit
1 sibling, 1 reply; 17+ messages in thread
From: Fan Zhang @ 2016-11-07 14:21 UTC (permalink / raw)
To: dev; +Cc: sergio.gonzalez.monroy
Fixes: 0d547ed0 ("examples/ipsec-secgw: support configuration
file")
Coverity issue: 137875
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
---
examples/ipsec-secgw/sa.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/examples/ipsec-secgw/sa.c b/examples/ipsec-secgw/sa.c
index 9e2c8a9..8c4406c 100644
--- a/examples/ipsec-secgw/sa.c
+++ b/examples/ipsec-secgw/sa.c
@@ -170,15 +170,18 @@ static uint32_t
parse_key_string(const char *key_str, uint8_t *key)
{
const char *pt_start = key_str, *pt_end = key_str;
- char sub_str[3];
uint32_t nb_bytes = 0;
while (pt_end != NULL) {
+ char sub_str[3] = {0};
+
pt_end = strchr(pt_start, ':');
- if (pt_end == NULL)
- strncpy(sub_str, pt_start, strlen(pt_start));
- else {
+ if (pt_end == NULL) {
+ if (strlen(pt_start) > 2)
+ return 0;
+ strncpy(sub_str, pt_start, 2);
+ } else {
if (pt_end - pt_start > 2)
return 0;
--
2.5.5
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH v2] examples/ipsec-secgw: fix pointer to local outside scope
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix pointer to local outside scope Fan Zhang
2016-11-04 14:15 ` Ferruh Yigit
@ 2016-11-07 14:22 ` Fan Zhang
2016-11-07 17:25 ` [dpdk-dev] [PATCH v3] " Fan Zhang
2 siblings, 0 replies; 17+ messages in thread
From: Fan Zhang @ 2016-11-07 14:22 UTC (permalink / raw)
To: dev; +Cc: sergio.gonzalez.monroy
Coverity issue: 137871
Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
---
examples/ipsec-secgw/parser.c | 120 ++++++++++++++++++++----------------------
1 file changed, 58 insertions(+), 62 deletions(-)
diff --git a/examples/ipsec-secgw/parser.c b/examples/ipsec-secgw/parser.c
index ede08d8..f1afdb7 100644
--- a/examples/ipsec-secgw/parser.c
+++ b/examples/ipsec-secgw/parser.c
@@ -503,86 +503,82 @@ parse_cfg_file(const char *cfg_filename)
do {
char oneline[1024];
-
+ char *pos;
get_s = fgets(oneline, 1024, f);
- if (get_s) {
- char *pos;
- line_num++;
+ if (!get_s)
+ break;
- if (strlen(oneline) > 1022) {
- rte_panic("%s:%u: error: the line "
- "contains more characters the "
- "parser can handle\n",
- cfg_filename, line_num);
- goto error_exit;
- }
+ line_num++;
- /* process comment char '#' */
- if (oneline[0] == '#')
- continue;
+ if (strlen(oneline) > 1022) {
+ rte_panic("%s:%u: error: the line "
+ "contains more characters the "
+ "parser can handle\n",
+ cfg_filename, line_num);
+ goto error_exit;
+ }
- pos = strchr(oneline, '#');
- if (pos != NULL)
- *pos = '\0';
-
- /* process line concatenator '\' */
- pos = strchr(oneline, 92);
- if (pos != NULL) {
- if (pos != oneline+strlen(oneline) - 2) {
- rte_panic("%s:%u: error: no "
- "character should exist "
- "after '\\' symbol\n",
- cfg_filename, line_num);
- goto error_exit;
- }
-
- *pos = '\0';
-
- if (strlen(oneline) + strlen(str) > 1022) {
- rte_panic("%s:%u: error: the "
- "concatenated line "
- "contains more characters "
- "the parser can handle\n",
- cfg_filename, line_num);
- goto error_exit;
- }
-
- strncpy(str + strlen(str), oneline,
- strlen(oneline));
+ /* process comment char '#' */
+ if (oneline[0] == '#')
+ continue;
- continue;
+ pos = strchr(oneline, '#');
+ if (pos != NULL)
+ *pos = '\0';
+
+ /* process line concatenator '\' */
+ pos = strchr(oneline, 92);
+ if (pos != NULL) {
+ if (pos != oneline+strlen(oneline) - 2) {
+ rte_panic("%s:%u: error: no character "
+ "should exist after '\\'\n",
+ cfg_filename, line_num);
+ goto error_exit;
}
- /* copy the line to str and process */
+ *pos = '\0';
+
if (strlen(oneline) + strlen(str) > 1022) {
- rte_panic("%s:%u: error: the line "
- "contains more characters the "
- "parser can handle\n",
+ rte_panic("%s:%u: error: the "
+ "concatenated line contains more "
+ "characters the parser can "
+ "handle\n",
cfg_filename, line_num);
goto error_exit;
}
+
strncpy(str + strlen(str), oneline,
strlen(oneline));
- str[strlen(str)] = '\n';
- if (cmdline_parse(cl, str) < 0) {
- rte_panic("%s:%u: error: parsing \"%s\" "
- "failed\n", cfg_filename,
- line_num, str);
- goto error_exit;
- }
+ continue;
+ }
- if (status.status < 0) {
- rte_panic("%s:%u: error: %s",
- cfg_filename, line_num,
- status.parse_msg);
- goto error_exit;
- }
+ /* copy the line to str and process */
+ if (strlen(oneline) + strlen(str) > 1022) {
+ rte_panic("%s:%u: error: the line contains more "
+ "characters the parser can handle\n",
+ cfg_filename, line_num);
+ goto error_exit;
+ }
+ strncpy(str + strlen(str), oneline,
+ strlen(oneline));
+
+ str[strlen(str)] = '\n';
+ if (cmdline_parse(cl, str) < 0) {
+ rte_panic("%s:%u: error: parsing \"%s\" failed\n",
+ cfg_filename, line_num, str);
+ goto error_exit;
+ }
- memset(str, 0, 1024);
+ if (status.status < 0) {
+ rte_panic("%s:%u: error: %s", cfg_filename,
+ line_num, status.parse_msg);
+ goto error_exit;
}
- } while (get_s != NULL);
+
+ memset(str, 0, 1024);
+ } while (1);
cmdline_stdin_exit(cl);
fclose(f);
--
2.5.5
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH v2] examples/ipsec-secgw: fix copy into fixed size buffer issue
2016-11-07 14:21 ` [dpdk-dev] [PATCH v2] " Fan Zhang
@ 2016-11-07 15:59 ` Ferruh Yigit
2016-11-07 20:40 ` Thomas Monjalon
0 siblings, 1 reply; 17+ messages in thread
From: Ferruh Yigit @ 2016-11-07 15:59 UTC (permalink / raw)
To: Fan Zhang, dev; +Cc: sergio.gonzalez.monroy
On 11/7/2016 2:21 PM, Fan Zhang wrote:
> Fixes: 0d547ed0 ("examples/ipsec-secgw: support configuration
> file")
> Coverity issue: 137875
>
> Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH v3] examples/ipsec-secgw: fix pointer to local outside scope
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix pointer to local outside scope Fan Zhang
2016-11-04 14:15 ` Ferruh Yigit
2016-11-07 14:22 ` [dpdk-dev] [PATCH v2] " Fan Zhang
@ 2016-11-07 17:25 ` Fan Zhang
2016-11-07 17:31 ` Ferruh Yigit
2 siblings, 1 reply; 17+ messages in thread
From: Fan Zhang @ 2016-11-07 17:25 UTC (permalink / raw)
To: dev; +Cc: sergio.gonzalez.monroy
Coverity issue: 137871
Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
---
examples/ipsec-secgw/parser.c | 116 +++++++++++++++++++-----------------------
1 file changed, 52 insertions(+), 64 deletions(-)
diff --git a/examples/ipsec-secgw/parser.c b/examples/ipsec-secgw/parser.c
index 598f435..c5f2508 100644
--- a/examples/ipsec-secgw/parser.c
+++ b/examples/ipsec-secgw/parser.c
@@ -487,8 +487,7 @@ parse_cfg_file(const char *cfg_filename)
struct parse_status status = {0};
if (f == NULL) {
- rte_panic("Error: invalid file descriptor %s\n",
- cfg_filename);
+ rte_panic("Error: invalid file descriptor %s\n", cfg_filename);
goto error_exit;
}
@@ -503,86 +502,75 @@ parse_cfg_file(const char *cfg_filename)
do {
char oneline[1024];
-
+ char *pos;
get_s = fgets(oneline, 1024, f);
- if (get_s) {
- char *pos;
- line_num++;
+ if (!get_s)
+ break;
- if (strlen(oneline) > 1022) {
- rte_panic("%s:%u: error: the line "
- "contains more characters the "
- "parser can handle\n",
- cfg_filename, line_num);
- goto error_exit;
- }
+ line_num++;
- /* process comment char '#' */
- if (oneline[0] == '#')
- continue;
+ if (strlen(oneline) > 1022) {
+ rte_panic("%s:%u: error: the line contains more characters the parser can handle\n",
+ cfg_filename, line_num);
+ goto error_exit;
+ }
- pos = strchr(oneline, '#');
- if (pos != NULL)
- *pos = '\0';
-
- /* process line concatenator '\' */
- pos = strchr(oneline, 92);
- if (pos != NULL) {
- if (pos != oneline+strlen(oneline) - 2) {
- rte_panic("%s:%u: error: no "
- "character should exist "
- "after '\\' symbol\n",
- cfg_filename, line_num);
- goto error_exit;
- }
-
- *pos = '\0';
-
- if (strlen(oneline) + strlen(str) > 1022) {
- rte_panic("%s:%u: error: the "
- "concatenated line "
- "contains more characters "
- "the parser can handle\n",
- cfg_filename, line_num);
- goto error_exit;
- }
-
- strncpy(str + strlen(str), oneline,
- strlen(oneline));
+ /* process comment char '#' */
+ if (oneline[0] == '#')
+ continue;
- continue;
+ pos = strchr(oneline, '#');
+ if (pos != NULL)
+ *pos = '\0';
+
+ /* process line concatenator '\' */
+ pos = strchr(oneline, 92);
+ if (pos != NULL) {
+ if (pos != oneline+strlen(oneline) - 2) {
+ rte_panic("%s:%u: error: no character should exist after '\\'\n",
+ cfg_filename, line_num);
+ goto error_exit;
}
- /* copy the line to str and process */
+ *pos = '\0';
+
if (strlen(oneline) + strlen(str) > 1022) {
- rte_panic("%s:%u: error: the line "
- "contains more characters the "
- "parser can handle\n",
+ rte_panic("%s:%u: error: the concatenated line contains more characters the parser can handle\n",
cfg_filename, line_num);
goto error_exit;
}
+
strncpy(str + strlen(str), oneline,
strlen(oneline));
- str[strlen(str)] = '\n';
- if (cmdline_parse(cl, str) < 0) {
- rte_panic("%s:%u: error: parsing \"%s\" "
- "failed\n", cfg_filename,
- line_num, str);
- goto error_exit;
- }
+ continue;
+ }
- if (status.status < 0) {
- rte_panic("%s:%u: error: %s",
- cfg_filename, line_num,
- status.parse_msg);
- goto error_exit;
- }
+ /* copy the line to str and process */
+ if (strlen(oneline) + strlen(str) > 1022) {
+ rte_panic("%s:%u: error: the line contains more characters the parser can handle\n",
+ cfg_filename, line_num);
+ goto error_exit;
+ }
+ strncpy(str + strlen(str), oneline,
+ strlen(oneline));
+
+ str[strlen(str)] = '\n';
+ if (cmdline_parse(cl, str) < 0) {
+ rte_panic("%s:%u: error: parsing \"%s\" failed\n",
+ cfg_filename, line_num, str);
+ goto error_exit;
+ }
- memset(str, 0, 1024);
+ if (status.status < 0) {
+ rte_panic("%s:%u: error: %s", cfg_filename,
+ line_num, status.parse_msg);
+ goto error_exit;
}
- } while (get_s != NULL);
+
+ memset(str, 0, 1024);
+ } while (1);
cmdline_stdin_exit(cl);
fclose(f);
--
2.5.5
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH v3] examples/ipsec-secgw: fix pointer to local outside scope
2016-11-07 17:25 ` [dpdk-dev] [PATCH v3] " Fan Zhang
@ 2016-11-07 17:31 ` Ferruh Yigit
2016-11-07 20:48 ` Thomas Monjalon
0 siblings, 1 reply; 17+ messages in thread
From: Ferruh Yigit @ 2016-11-07 17:31 UTC (permalink / raw)
To: Fan Zhang, dev; +Cc: sergio.gonzalez.monroy
On 11/7/2016 5:25 PM, Fan Zhang wrote:
> Coverity issue: 137871
> Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")
>
> Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
> ---
Although checkpatch will complain about long lines, I believe it is
better not to wrap log messages.
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH v2] examples/ipsec-secgw: fix copy into fixed size buffer issue
2016-11-07 15:59 ` Ferruh Yigit
@ 2016-11-07 20:40 ` Thomas Monjalon
0 siblings, 0 replies; 17+ messages in thread
From: Thomas Monjalon @ 2016-11-07 20:40 UTC (permalink / raw)
To: Fan Zhang; +Cc: dev, Ferruh Yigit, sergio.gonzalez.monroy
2016-11-07 15:59, Ferruh Yigit:
> On 11/7/2016 2:21 PM, Fan Zhang wrote:
> > Fixes: 0d547ed0 ("examples/ipsec-secgw: support configuration
> > file")
> > Coverity issue: 137875
> >
> > Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
>
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Applied
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH v3] examples/ipsec-secgw: fix pointer to local outside scope
2016-11-07 17:31 ` Ferruh Yigit
@ 2016-11-07 20:48 ` Thomas Monjalon
0 siblings, 0 replies; 17+ messages in thread
From: Thomas Monjalon @ 2016-11-07 20:48 UTC (permalink / raw)
To: Fan Zhang; +Cc: dev, Ferruh Yigit, sergio.gonzalez.monroy
2016-11-07 17:31, Ferruh Yigit:
> On 11/7/2016 5:25 PM, Fan Zhang wrote:
> > Coverity issue: 137871
> > Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")
> >
> > Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
>
> Although checkpatch will complain about long lines, I believe it is
> better not to wrap log messages.
>
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Wrapped after "error: " to avoid too long lines
while being able to grep the rest of the message,
and applied.
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2016-11-07 20:48 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-03 12:12 [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not null terminated Fan Zhang
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not terminated issue Fan Zhang
2016-11-04 14:16 ` Ferruh Yigit
2016-11-06 23:38 ` Thomas Monjalon
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix copy into fixed size buffer issue Fan Zhang
2016-11-04 14:15 ` Ferruh Yigit
2016-11-07 14:21 ` [dpdk-dev] [PATCH v2] " Fan Zhang
2016-11-07 15:59 ` Ferruh Yigit
2016-11-07 20:40 ` Thomas Monjalon
2016-11-03 12:12 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix pointer to local outside scope Fan Zhang
2016-11-04 14:15 ` Ferruh Yigit
2016-11-07 14:22 ` [dpdk-dev] [PATCH v2] " Fan Zhang
2016-11-07 17:25 ` [dpdk-dev] [PATCH v3] " Fan Zhang
2016-11-07 17:31 ` Ferruh Yigit
2016-11-07 20:48 ` Thomas Monjalon
2016-11-04 14:18 ` [dpdk-dev] [PATCH] examples/ipsec-secgw: fix buffer not null terminated Ferruh Yigit
2016-11-06 23:38 ` 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).