From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id A0AA929CB for ; Thu, 3 Nov 2016 13:12:48 +0100 (CET) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga105.jf.intel.com with ESMTP; 03 Nov 2016 05:12:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,438,1473145200"; d="scan'208";a="781911617" Received: from sie-lab-212-071.ir.intel.com (HELO silpixa00381633.ir.intel.com) ([10.237.212.71]) by FMSMGA003.fm.intel.com with ESMTP; 03 Nov 2016 05:12:47 -0700 From: Fan Zhang To: dev@dpdk.org Date: Thu, 3 Nov 2016 12:12:43 +0000 Message-Id: <1478175163-229116-4-git-send-email-roy.fan.zhang@intel.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1478175163-229116-1-git-send-email-roy.fan.zhang@intel.com> References: <1478175163-229116-1-git-send-email-roy.fan.zhang@intel.com> Subject: [dpdk-dev] [PATCH] examples/ipsec-secgw: fix pointer to local outside scope X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Nov 2016 12:12:49 -0000 Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file") Coverity issue: 137871 Signed-off-by: Fan Zhang --- 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