From: Ivan Malov <ivan.malov@oktetlabs.ru> To: dev@dpdk.org Cc: stable@dpdk.org, Andy Moreton <amoreton@xilinx.com>, Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Subject: [dpdk-stable] [PATCH 3/3] common/sfc_efx/base: enhance field ID check in field set API Date: Wed, 6 Jan 2021 13:06:01 +0300 Message-ID: <20210106100601.29299-3-ivan.malov@oktetlabs.ru> (raw) In-Reply-To: <20210106100601.29299-1-ivan.malov@oktetlabs.ru> A field ID passed to the API may point to a gap in the array of field descriptors. Turn down such invocations as improper. Fixes: 370ed675a952 ("common/sfc_efx/base: support setting PPORT in match spec") Cc: stable@dpdk.org Reviewed-by: Andy Moreton <amoreton@xilinx.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> --- drivers/common/sfc_efx/base/efx_mae.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/common/sfc_efx/base/efx_mae.c b/drivers/common/sfc_efx/base/efx_mae.c index c1717d7b0..f4a529f5a 100644 --- a/drivers/common/sfc_efx/base/efx_mae.c +++ b/drivers/common/sfc_efx/base/efx_mae.c @@ -678,16 +678,22 @@ efx_mae_match_spec_field_set( goto fail2; } - if (value_size != descp->emmd_value_size) { + if (descp->emmd_mask_size == 0) { + /* The ID points to a gap in the array of field descriptors. */ rc = EINVAL; goto fail3; } - if (mask_size != descp->emmd_mask_size) { + if (value_size != descp->emmd_value_size) { rc = EINVAL; goto fail4; } + if (mask_size != descp->emmd_mask_size) { + rc = EINVAL; + goto fail5; + } + if (descp->emmd_endianness == EFX_MAE_FIELD_BE) { /* * The mask/value are in network (big endian) order. @@ -729,6 +735,8 @@ efx_mae_match_spec_field_set( return (0); +fail5: + EFSYS_PROBE(fail5); fail4: EFSYS_PROBE(fail4); fail3: -- 2.20.1
next prev parent reply other threads:[~2021-01-06 10:06 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-01-06 10:05 [dpdk-stable] [PATCH 1/3] common/sfc_efx/base: fix MAE match spec validation helper Ivan Malov 2021-01-06 10:06 ` [dpdk-stable] [PATCH 2/3] common/sfc_efx/base: fix MAE match spec class comparison API Ivan Malov 2021-01-06 10:06 ` Ivan Malov [this message] 2021-01-18 9:05 ` [dpdk-stable] [PATCH 1/3] common/sfc_efx/base: fix MAE match spec validation helper Ferruh Yigit
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210106100601.29299-3-ivan.malov@oktetlabs.ru \ --to=ivan.malov@oktetlabs.ru \ --cc=amoreton@xilinx.com \ --cc=andrew.rybchenko@oktetlabs.ru \ --cc=dev@dpdk.org \ --cc=stable@dpdk.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
patches for DPDK stable branches This inbox may be cloned and mirrored by anyone: git clone --mirror http://inbox.dpdk.org/stable/0 stable/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 stable stable/ http://inbox.dpdk.org/stable \ stable@dpdk.org public-inbox-index stable Example config snippet for mirrors. Newsgroup available over NNTP: nntp://inbox.dpdk.org/inbox.dpdk.stable AGPL code for this site: git clone https://public-inbox.org/public-inbox.git