[dpdk-dev] [PATCH] examples/ipsec-secgw: fix pointer to local outside scope
Fan Zhang
roy.fan.zhang at intel.com
Thu Nov 3 13:12:43 CET 2016
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
More information about the dev
mailing list