Thanks Stephen, I'll send v2 with required change. Regards, Maayan Kashani
> -----Original Message----- > From: Stephen Hemminger <[email protected]> > Sent: Friday, 14 November 2025 0:38 > To: Maayan Kashani <[email protected]> > Cc: [email protected]; Raslan Darawsheh <[email protected]>; > [email protected]; Aman Singh <[email protected]>; Slava > Ovsiienko <[email protected]>; Gregory Etelson > <[email protected]> > Subject: Re: [PATCH] app/testpmd: fix flex item link parsing > > External email: Use caution opening links or attachments > > > On Thu, 13 Nov 2025 22:17:25 +0200 > Maayan Kashani <[email protected]> wrote: > > > The flex_link_item_parse function was using > > FLEX_MAX_FLOW_PATTERN_LENGTH for all memcpy operations regardless > of > > the actual flow item type. This could lead to copying incorrect amounts of > data. > > > > This patch adds a switch statement to determine the correct size based > > on the actual flow item type (IPv4, IPv6, UDP, TCP) and uses that size > > for the memcpy operations on spec, mask, and last fields. > > > > Also adds validation to reject unsupported item types. > > > > Fixes: 59f3a8acbcdb ("app/testpmd: add flex item commands") > > Cc: [email protected] > > > > Signed-off-by: Maayan Kashani <[email protected]> > > --- > > app/test-pmd/cmd_flex_item.c | 10 +++++++--- > > 1 file changed, 7 insertions(+), 3 deletions(-) > > > > diff --git a/app/test-pmd/cmd_flex_item.c > > b/app/test-pmd/cmd_flex_item.c index e6e1cefeb3d..ec19ab63e75 100644 > > --- a/app/test-pmd/cmd_flex_item.c > > +++ b/app/test-pmd/cmd_flex_item.c > > @@ -134,6 +134,7 @@ flex_link_item_parse(const char *src, struct > rte_flow_item *item) > > struct rte_flow_attr *attr; > > struct rte_flow_item *pattern; > > struct rte_flow_action *actions; > > + size_t sz = 0; > > > > sprintf(flow_rule, > > "flow create 0 pattern %s / end actions drop / end", > > src); @@ -143,21 +144,24 @@ flex_link_item_parse(const char *src, struct > rte_flow_item *item) > > if (ret) > > return ret; > > item->type = pattern->type; > > + ret = rte_flow_conv(RTE_FLOW_CONV_OP_ITEM_MASK, NULL, 0, item, > NULL); > > + if (ret > 0) > > + sz = ret; > > You don't really need a temporary variable sz, can't you just use the return > value directly or are you concerned about signed/unsigned mismatch. > If concerned about signed/unsigned mismatch warnings then would need > cast on the assignment to sz.

