[dpdk-dev] [PATCH v2] app/proc-info:fix port mask parse bug

Li Han han.li1 at zte.com.cn
Tue Nov 6 04:04:26 CET 2018


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.li1 at 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



More information about the dev mailing list