parse_portmask return type is int,but global variable "enabled_port_mask" type is uint32_t.so in proc_info_parse_args function,when parse_portmask return -1,"enabled_port_mask" will get a huge value and "if (enabled_port_mask == 0)" will never happen.
Signed-off-by: Li Han <han....@zte.com.cn> --- v2:fix typecast issue --- app/proc-info/main.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/app/proc-info/main.c b/app/proc-info/main.c index c20effa..650d599 100644 --- a/app/proc-info/main.c +++ b/app/proc-info/main.c @@ -37,7 +37,7 @@ #define MAX_STRING_LEN 256 /**< mask of enabled ports */ -static uint32_t enabled_port_mask; +static uint64_t enabled_port_mask; /**< Enable stats. */ static uint32_t enable_stats; /**< Enable xstats. */ @@ -90,7 +90,7 @@ /* * Parse the portmask provided at run time. */ -static int +static unsigned long parse_portmask(const char *portmask) { char *end = NULL; @@ -103,12 +103,9 @@ if ((portmask[0] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) { printf("%s ERROR parsing the port mask\n", __func__); - return -1; + return 0; } - if (pm == 0) - return -1; - return pm; } -- 1.8.3.1