[dpdk-dev] [PATCH v2 3/5] app/testpmd: fix hex string parser in flow commands

Ori Kam orika at nvidia.com
Mon Oct 11 11:15:26 CEST 2021


Hi Slava,

> -----Original Message-----
> From: Slava Ovsiienko <viacheslavo at nvidia.com>
> Sent: Monday, October 11, 2021 2:46 AM
> Subject: [PATCH v2 3/5] app/testpmd: fix hex string parser in flow commands
> 
> The hexadecimal string parser does not check the target field buffer size, buffer overflow happens and
> might cause the application failure (segmentation fault is observed usually).
> 
> Fixes: 169a9fed1f4c ("app/testpmd: fix hex string parser support for flow API")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo at nvidia.com>
> ---
>  app/test-pmd/cmdline_flow.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index
> 736029c4fd..6827d9228f 100644
> --- a/app/test-pmd/cmdline_flow.c
> +++ b/app/test-pmd/cmdline_flow.c
> @@ -7291,10 +7291,13 @@ parse_hex(struct context *ctx, const struct token *token,
>  		hexlen -= 2;
>  	}
>  	if (hexlen > length)
> -		return -1;
> +		goto error;
>  	ret = parse_hex_string(str, hex_tmp, &hexlen);
>  	if (ret < 0)
>  		goto error;
> +	/* Check the converted binary fits into data buffer. */
> +	if (hexlen > size)
> +		goto error;
>  	/* Let parse_int() fill length information first. */
>  	ret = snprintf(tmp, sizeof(tmp), "%u", hexlen);
>  	if (ret < 0)
> --
> 2.18.1

Acked-by: Ori Kam <orika at nvidia.com>
Thanks,
Ori



More information about the dev mailing list