[dpdk-dev] [PATCH 2/5] example_ip_pipeline: avoid strncpy issue

Bruce Richardson bruce.richardson at intel.com
Thu Sep 10 10:44:03 CEST 2015


On Mon, Aug 31, 2015 at 06:59:03PM -0700, Stephen Hemminger wrote:
> If name is so long that it fills buffer, then string would not
> be null terminated.
> 
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
> ---
>  examples/ip_pipeline/config_parse_tm.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/examples/ip_pipeline/config_parse_tm.c b/examples/ip_pipeline/config_parse_tm.c
> index 84702b0..4a35715 100644
> --- a/examples/ip_pipeline/config_parse_tm.c
> +++ b/examples/ip_pipeline/config_parse_tm.c
> @@ -354,7 +354,9 @@ tm_cfgfile_load_sched_subport(
>  					profile = atoi(entries[j].value);
>  					strncpy(name,
>  						entries[j].name,
> -						sizeof(name));
> +						CFG_NAME_LEN - 1);
> +					name[CFG_NAME_LEN-1] = '\0';
> +
>  					n_tokens = rte_strsplit(
>  						&name[sizeof("pipe")],
>  						strnlen(name, CFG_NAME_LEN),
> -- 
> 2.1.4
> 
Would using snprintf rather than strncpy be tidier? Would save having to worry
about null termination at all.

/Bruce



More information about the dev mailing list