inlined from ‘cperf_test_vector_get_from_file’ at
../app/test-crypto-perf/cperf_test_vector_parsing.c:578:11:
../app/test-crypto-perf/cperf_test_vector_parsing.c:510:3: error:
‘strncpy’ output truncated before terminating nul copying as many bytes
from a string as its length [-Werror=stringop-truncation]
   strncpy(entry, line, strlen(line));
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../app/test-crypto-perf/cperf_test_vector_parsing.c:528:5: error:
‘strncat’ output truncated before terminating nul copying as many bytes
from a string as its length [-Werror=stringop-truncation]
     strncat(entry, line, strlen(line));
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Found this issue with meson build and gcc 8.1.

Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test application")

Cc: declan.dohe...@intel.com
Cc: a...@warmcat.com
Cc: sta...@dpdk.org

Signed-off-by: Jerin Jacob <jerin.ja...@caviumnetworks.com>
---
 app/test-crypto-perf/cperf_test_vector_parsing.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/app/test-crypto-perf/cperf_test_vector_parsing.c 
b/app/test-crypto-perf/cperf_test_vector_parsing.c
index 26321d004..92932a230 100644
--- a/app/test-crypto-perf/cperf_test_vector_parsing.c
+++ b/app/test-crypto-perf/cperf_test_vector_parsing.c
@@ -506,8 +506,7 @@ parse_file(struct cperf_test_vector *vector, struct 
cperf_options *opts)
                if (entry == NULL)
                        return -1;
 
-               memset(entry, 0, strlen(line) + 1);
-               strncpy(entry, line, strlen(line));
+               strcpy(entry, line);
 
                /* check if entry ends with , or = */
                if (entry[strlen(entry) - 1] == ','
@@ -524,8 +523,8 @@ parse_file(struct cperf_test_vector *vector, struct 
cperf_options *opts)
                                if (entry_extended == NULL)
                                        goto err;
                                entry = entry_extended;
-
-                               strncat(entry, line, strlen(line));
+                               /* entry has been allocated accordingly */
+                               strcpy(&entry[strlen(entry)], line);
 
                                if (entry[strlen(entry) - 1] != ',')
                                        break;
-- 
2.17.0

Reply via email to