From: taox.zhu@intel.com
To: qiming.yang@intel.com, wenzhuo.lu@intel.com
Cc: dev@dpdk.org, simei.su@intel.com, yahui.cao@intel.com,
xiaolong.ye@intel.com, Zhu Tao <taox.zhu@intel.com>,
stable@dpdk.org
Subject: [dpdk-dev] [PATCH v2] net/ice: fix hash flow segmentation fault
Date: Tue, 3 Mar 2020 13:07:37 +0800 [thread overview]
Message-ID: <20200303050737.9768-1-taox.zhu@intel.com> (raw)
In-Reply-To: <20200303015557.63621-1-taox.zhu@intel.com>
From: Zhu Tao <taox.zhu@intel.com>
Macro rte_errno is not a static value, so it needs to be updated in all
error handling code.
Patch 'dc36bd5dfdeb' mistakenly consider that rte_errno is a constant, which
causes the unrecognized flow rule to be marked as recognition success.
Later, when the code tried to parse the flow rule, a null pointer caused
a segmentation fault.
Fixes: dc36bd5dfdeb ("net/ice: fix flow FDIR/switch memory leak")
Cc: stable@dpdk.org
Signed-off-by: Zhu Tao <taox.zhu@intel.com>
---
v2 Changes:
Commit message: Use 12 chars length of commit SHA in Fixes line.
drivers/net/ice/ice_hash.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c
index d891538bd..e5fb0f344 100644
--- a/drivers/net/ice/ice_hash.c
+++ b/drivers/net/ice/ice_hash.c
@@ -409,7 +409,7 @@ ice_hash_parse_pattern_action(__rte_unused struct ice_adapter *ad,
void **meta,
struct rte_flow_error *error)
{
- int ret = -rte_errno;
+ int ret = 0;
struct ice_pattern_match_item *pattern_match_item;
struct rss_meta *rss_meta_ptr;
@@ -424,12 +424,16 @@ ice_hash_parse_pattern_action(__rte_unused struct ice_adapter *ad,
/* Check rss supported pattern and find matched pattern. */
pattern_match_item = ice_search_pattern_match_item(pattern,
array, array_len, error);
- if (!pattern_match_item)
+ if (!pattern_match_item) {
+ ret = -rte_errno;
goto error;
+ }
ret = ice_hash_check_inset(pattern, error);
- if (ret)
+ if (ret) {
+ ret = -rte_errno;
goto error;
+ }
/* Save protocol header to rss_meta. */
*meta = rss_meta_ptr;
@@ -439,8 +443,10 @@ ice_hash_parse_pattern_action(__rte_unused struct ice_adapter *ad,
/* Check rss action. */
ret = ice_hash_parse_action(pattern_match_item, actions, meta, error);
error:
- if (ret)
+ if (ret) {
+ ret = -rte_errno;
rte_free(rss_meta_ptr);
+ }
rte_free(pattern_match_item);
return ret;
--
2.17.1
next prev parent reply other threads:[~2020-03-03 5:12 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-03 1:55 [dpdk-dev] [DPDK] net/ice: fix hash flow segmentation fault taox.zhu
2020-03-03 3:32 ` Ye Xiaolong
2020-03-03 5:07 ` Zhu, TaoX
2020-03-03 5:07 ` taox.zhu [this message]
2020-03-03 5:38 ` [dpdk-dev] [PATCH v3] " taox.zhu
2020-03-03 7:16 ` Ye Xiaolong
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=20200303050737.9768-1-taox.zhu@intel.com \
--to=taox.zhu@intel.com \
--cc=dev@dpdk.org \
--cc=qiming.yang@intel.com \
--cc=simei.su@intel.com \
--cc=stable@dpdk.org \
--cc=wenzhuo.lu@intel.com \
--cc=xiaolong.ye@intel.com \
--cc=yahui.cao@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.