[dpdk-dev] [PATCH v3] examples/ipsec-secgw: fix pointer to local outside scope

2016-11-07 Thread Thomas Monjalon
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 
> 
> Although checkpatch will complain about long lines, I believe it is
> better not to wrap log messages.
> 
> Acked-by: Ferruh Yigit 

Wrapped after "error: " to avoid too long lines
while being able to grep the rest of the message,
and applied.



[dpdk-dev] [PATCH v3] examples/ipsec-secgw: fix pointer to local outside scope

2016-11-07 Thread 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 
> ---

Although checkpatch will complain about long lines, I believe it is
better not to wrap log messages.

Acked-by: Ferruh Yigit 



[dpdk-dev] [PATCH v3] examples/ipsec-secgw: fix pointer to local outside scope

2016-11-07 Thread Fan Zhang
Coverity issue: 137871
Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")

Signed-off-by: Fan Zhang 
---
 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