On 11/4/2021 5:33 AM, Gregory Etelson wrote:
Hello Ferruh,

   lib/ethdev/rte_flow.c | 6 ++++--
   1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/ethdev/rte_flow.c
b/lib/ethdev/rte_flow.c
index d268784532..a93f68abbc 100644
--- a/lib/ethdev/rte_flow.c
+++ b/lib/ethdev/rte_flow.c
@@ -54,11 +54,13 @@
rte_flow_conv_copy(void *buf, const void *data,
const size_t size,
       /**
        * Allow PMD private flow item
        */
-     size_t sz = type >= 0 ? desc[type].size :
sizeof(void *);
+     bool rte_type = type >= 0;
+
+     size_t sz = rte_type ? desc[type].size :
sizeof(void *);
       if (buf == NULL || data == NULL)
               return 0;
       rte_memcpy(buf, data, (size > sz ? sz :
size));
-     if (desc[type].desc_fn)

Was this (possible) negative array index
intentional, or are you fixing it?


Negative type values assigned to PMD private items and actions.
RTE allows private PMD types in flow rules since
5d1bff8fe2 ethdev: allow negative values in flow rule types
We construct flow rules with private PMD types
to implement tunnel offload.
However, negative type must not be used as index in
rte_flow_desc_item[] and rte_flow_desc_action[] arrays.


That is what I assumed, but wasn't clear from commit log, commit log
reads as it is updating an intended usage.

+     if (rte_type && desc[type].desc_fn)
               sz += desc[type].desc_fn(size > 0 ? buf
: NULL, data);
       return sz;
   }



Reply via email to