Replace strcat with strlcat to avoid buffer overflow.

Fixes: a6a47ac9c2 ("cfgfile: rework load function")
Cc: sta...@dpdk.org

Signed-off-by: Chaitanya Babu Talluri <tallurix.chaitanya.b...@intel.com>
---
v2: Instead of strcat, used strlcat.
---
 lib/librte_cfgfile/rte_cfgfile.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/librte_cfgfile/rte_cfgfile.c b/lib/librte_cfgfile/rte_cfgfile.c
index 7d8c941ea..3296bb6f8 100644
--- a/lib/librte_cfgfile/rte_cfgfile.c
+++ b/lib/librte_cfgfile/rte_cfgfile.c
@@ -8,6 +8,7 @@
 #include <ctype.h>
 #include <errno.h>
 #include <rte_common.h>
+#include <rte_string_fns.h>
 
 #include "rte_cfgfile.h"
 
@@ -224,10 +225,11 @@ rte_cfgfile_load_with_params(const char *filename, int 
flags,
                        _strip(split[1], strlen(split[1]));
                        char *end = memchr(split[1], '\\', strlen(split[1]));
 
+                       size_t split_len = strlen(split[1]) + 1;
                        while (end != NULL) {
                                if (*(end+1) == params->comment_character) {
                                        *end = '\0';
-                                       strcat(split[1], end+1);
+                                       strlcat(split[1], end+1, split_len);
                                } else
                                        end++;
                                end = memchr(end, '\\', strlen(end));
-- 
2.17.2

Reply via email to