Static analysis reports that a rule might have a valid engine but invalid
rule pointer while having a valid rule size. This should not happen in
normal operation, but it's a good defensive check, so fix the potential
issue by checking for the problematic condition before dumping flow memory.

Coverity issue: 503774

Fixes: 215a768c180a ("net/ice: support flow dump")

Signed-off-by: Anatoly Burakov <[email protected]>
---
 drivers/net/intel/ice/ice_generic_flow.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/net/intel/ice/ice_generic_flow.c 
b/drivers/net/intel/ice/ice_generic_flow.c
index cbc3d78079..04097cca76 100644
--- a/drivers/net/intel/ice/ice_generic_flow.c
+++ b/drivers/net/intel/ice/ice_generic_flow.c
@@ -2660,15 +2660,18 @@ ice_flow_dev_dump(struct rte_eth_dev *dev,
                if (flow != NULL && p_flow != flow)
                        continue;
 
+               /* this should not happen */
+               if (p_flow->engine == NULL || p_flow->rule == NULL) {
+                       PMD_DRV_LOG(DEBUG, "Invalid flow");
+                       continue;
+               }
+
                found = true;
-               if (p_flow->engine != NULL) {
-                       rule_size = p_flow->engine->rule_size;
-                       if (p_flow->rule != NULL)
-                               rule_data = p_flow->rule;
-               }
 
-               if (p_flow->engine != NULL)
-                       ice_flow_dump_blob(file,
+               rule_size = p_flow->engine->rule_size;
+               rule_data = p_flow->rule;
+
+               ice_flow_dump_blob(file,
                                p_flow->engine->name != NULL ?
                                p_flow->engine->name : "unknown",
                                rule_data, rule_size);
-- 
2.47.3

Reply via email to