[PATCH] app/flow-perf: fix logic to add comma every three digits

Rahul Lakkireddy rahul.lakkireddy at chelsio.com
Sat Jun 11 00:06:43 CEST 2022


Add comma after 1 in 1000 too, like 1,000. Also, since max uint64_t is
a 20 digit number, increase space in temporary array to hold 20 digits.
Fixes following warnings when using optimization=1 build flag with
GCC 11.

../app/test-flow-perf/main.c: In function ‘pretty_number’:
../app/test-flow-perf/main.c:1737:28: warning: ‘sprintf’ may write a terminating nul past the end of the destination [-Wformat-overflow=]
         sprintf(p[i++], "%d", (int)n);
                            ^
../app/test-flow-perf/main.c:1737:9: note: ‘sprintf’ output between 2 and 5 bytes into a destination of size 4
         sprintf(p[i++], "%d", (int)n);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Bugzilla ID: 1029
Fixes: 15c431864000 ("app/flow-perf: add packet forwarding support")
Cc: stable at dpdk.org

Reported-by: Daxue Gao <daxuex.gao at intel.com>
Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy at chelsio.com>
---
 app/test-flow-perf/main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/test-flow-perf/main.c b/app/test-flow-perf/main.c
index 56d43734e3..594507a85e 100644
--- a/app/test-flow-perf/main.c
+++ b/app/test-flow-perf/main.c
@@ -1724,11 +1724,11 @@ do_tx(struct lcore_info *li, uint16_t cnt, uint16_t tx_port,
 static char *
 pretty_number(uint64_t n, char *buf)
 {
-	char p[6][4];
+	char p[7][4];
 	int i = 0;
 	int off = 0;
 
-	while (n > 1000) {
+	while (n >= 1000) {
 		sprintf(p[i], "%03d", (int)(n % 1000));
 		n /= 1000;
 		i += 1;
-- 
2.27.0



More information about the stable mailing list