Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file") Coverity issue: 137871
Signed-off-by: Fan Zhang <roy.fan.zhang at 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