From: Thomas Monjalon <thomas.monjalon@6wind.com>
To: helin.zhang@intel.com
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH] i40e: fix the issue reported by klocwork
Date: Mon, 30 Mar 2015 22:14:27 +0200 [thread overview]
Message-ID: <1651225.dfosDIXqjQ@xps13> (raw)
In-Reply-To: <1423740143-29708-1-git-send-email-jingjing.wu@intel.com>
Helin, is this patch valid and important?
2015-02-12 19:22, Jingjing Wu:
> Klocwork reports array 'src_offset' may use index 16.
> In function i40e_srcoff_to_flx_pit, index j + 1 can reach I40E_FDIR_MAX_FLEX_LEN.
> This patch fixes this issue to avoid array bound.
>
> Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
> ---
> lib/librte_pmd_i40e/i40e_fdir.c | 35 +++++++++++++++++------------------
> 1 file changed, 17 insertions(+), 18 deletions(-)
>
> diff --git a/lib/librte_pmd_i40e/i40e_fdir.c b/lib/librte_pmd_i40e/i40e_fdir.c
> index 68511c8..bc36d8e 100644
> --- a/lib/librte_pmd_i40e/i40e_fdir.c
> +++ b/lib/librte_pmd_i40e/i40e_fdir.c
> @@ -402,28 +402,27 @@ i40e_srcoff_to_flx_pit(const uint16_t *src_offset,
>
> while (j < I40E_FDIR_MAX_FLEX_LEN) {
> size = 1;
> - for (; j < I40E_FDIR_MAX_FLEX_LEN; j++) {
> + for (; j < I40E_FDIR_MAX_FLEX_LEN - 1; j++) {
> if (src_offset[j + 1] == src_offset[j] + 1)
> size++;
> - else {
> - src_tmp = src_offset[j] + 1 - size;
> - /* the flex_pit need to be sort by scr_offset */
> - for (i = 0; i < num; i++) {
> - if (src_tmp < flex_pit[i].src_offset)
> - break;
> - }
> - /* if insert required, move backward */
> - for (k = num; k > i; k--)
> - flex_pit[k] = flex_pit[k - 1];
> - /* insert */
> - flex_pit[i].dst_offset = j + 1 - size;
> - flex_pit[i].src_offset = src_tmp;
> - flex_pit[i].size = size;
> - j++;
> - num++;
> + else
> + break;
> + }
> + src_tmp = src_offset[j] + 1 - size;
> + /* the flex_pit need to be sort by src_offset */
> + for (i = 0; i < num; i++) {
> + if (src_tmp < flex_pit[i].src_offset)
> break;
> - }
> }
> + /* if insert required, move backward */
> + for (k = num; k > i; k--)
> + flex_pit[k] = flex_pit[k - 1];
> + /* insert */
> + flex_pit[i].dst_offset = j + 1 - size;
> + flex_pit[i].src_offset = src_tmp;
> + flex_pit[i].size = size;
> + j++;
> + num++;
> }
> return num;
> }
>
next prev parent reply other threads:[~2015-03-30 20:15 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-12 11:22 Jingjing Wu
2015-03-30 20:14 ` Thomas Monjalon [this message]
2015-03-31 6:11 ` Zhang, Helin
2015-03-31 10:27 ` Thomas Monjalon
2015-04-01 1:26 ` Zhang, Helin
2015-04-01 19:47 ` Thomas Monjalon
2015-03-31 8:56 ` Cao, Min
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=1651225.dfosDIXqjQ@xps13 \
--to=thomas.monjalon@6wind.com \
--cc=dev@dpdk.org \
--cc=helin.zhang@intel.com \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).