GCC 10 compiling output: eal_common_trace_utils.c: In function 'eal_trace_dir_args_save': eal_common_trace_utils.c:290:24: error: '__builtin___sprintf_chk' \ may write a terminating nul past the end of the destination \ [-Werror=format-overflow=] 290 | sprintf(dir_path, "%s/", optarg); | ^
Fixes: 8af866df8d8c ("trace: add trace directory configuration parameter") Signed-off-by: Phil Yang <phil.y...@arm.com> Reviewed-by: Lijian Zhang <lijian.zh...@arm.com> Tested-by: Lijian Zhang <lijian.zh...@arm.com> --- lib/librte_eal/common/eal_common_trace_utils.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/librte_eal/common/eal_common_trace_utils.c b/lib/librte_eal/common/eal_common_trace_utils.c index fce8892..c079642 100644 --- a/lib/librte_eal/common/eal_common_trace_utils.c +++ b/lib/librte_eal/common/eal_common_trace_utils.c @@ -276,7 +276,10 @@ eal_trace_dir_args_save(char const *optarg) return -EINVAL; } - if (strlen(optarg) >= size) { + /* the specified trace directory name cannot + * exceed PATH_MAX-1. + */ + if (strlen(optarg) >= (size - 1)) { trace_err("input string is too big"); return -ENAMETOOLONG; } -- 2.7.4