From: Viacheslav Ovsiienko Date: Wed, 13 Oct 2021 18:45:15 +0000 (+0300) Subject: app/testpmd: fix hex string parser in flow commands X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=a2b97fb7f5b11dcf5e810e13a0da1a0f111975e6;p=dpdk.git 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@dpdk.org Signed-off-by: Viacheslav Ovsiienko Acked-by: Ori Kam --- diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index 6d9e3d5c42..a90822b660 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -7381,10 +7381,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)