From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0025948BB6 for ; Wed, 26 Nov 2025 15:14:24 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C0288402D1; Wed, 26 Nov 2025 15:14:24 +0100 (CET) Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012006.outbound.protection.outlook.com [52.101.43.6]) by mails.dpdk.org (Postfix) with ESMTP id 778E8402D1 for ; Wed, 26 Nov 2025 15:14:23 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uldMOghyVXQAdXjmgaYBGwrRMxeGREiJ67yZvKoC38Zw361yASPKs53zDDYphBUh55rw7ifxsdrVEeYvMbpX7HZSH+/J1jt6pHc9sTLH0qAa+I76ljllhLqOODFgbpaUCjasf56WQdvmjdpG3D9oDVEKcTZGqtKJWfvz/o58kVHyevyRZNdVMogcvQ1H8Wwg1vDz06akquzxDQMmihK39DmSdbg3bqwt+V+ENu51SCrm1ZQozI7RcD4TJjHY7m1QDIvD8P3KQHOlTwisoLfPnew/Zz9RR8DoJrTQYDySJ2GMQf8CWN2mvM4BEkdFRvmWVyVB03kP6qiNaexI8jvVfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2riOmWz98jztRzlWumPSwCmeWOE2b6nzDBtxxoEqGxI=; b=DIOPIOwF9f9gO0Kyx/c7ayWI+pLS7sg4l6RGC/RvJsOhRiLT8OEjRH5w6MZvo4i9NFVYziJagRFFHKwrZmEvC9hv03k0g0ndMGQwY4LsjyASk8uVa8VZC9TsK5U+1vYnLH9Gox4egs+8bgt5SzcGylEK5vXUyd0SIjIX2X6WCcLllJeiUy5ypFfG1JVZZ1g2nhSgjPUR90kM/cjNUJO8GFPRcGmiUFLQ8wQ22AAi33IHWpfMm3PLRBE/8fm7Lios+3UhuxQYV0z3u9MBzMtKbZwZKvRrdBa97VZuF5N45E+Oh7FnK/0Lva9GqYYUpjwqdYG6s2wy8fzWFqtHV6Xo6g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2riOmWz98jztRzlWumPSwCmeWOE2b6nzDBtxxoEqGxI=; b=cwymoj4wBqkdZcmeoS1WBWrTfmE7dQt2zoqQG79SrNXZQhnSuyR41Ck/X626jr8LIS18MQY4TPh9aU4Ciyl5DprIRVMBnd+G2wxdPtBwNrdkWPpW8/B3aV9JZfw2y82XrIGCHTGQxFx0B3vVJg+DOFRSZJ0DxYUf0tbfE7gP19ui8jrj26n4W68YgD5vSsDwKbuz73J+jZwXpZf1Bhoz5lqYlnlyEBCmGC8wYxtft7i++LlozjwyDkDG28Z/ftwXSW8mdNTy9bkUcoyvmUmfDkD/q5xXPYwfgFf/ARPVjPAq1ANYxiRjkoL2bMEFWCGQQcWLffR64s5fUpWpygN2Kg== Received: from SN7PR04CA0049.namprd04.prod.outlook.com (2603:10b6:806:120::24) by MW4PR12MB6732.namprd12.prod.outlook.com (2603:10b6:303:1ea::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov 2025 14:14:17 +0000 Received: from SA2PEPF00003AE6.namprd02.prod.outlook.com (2603:10b6:806:120:cafe::de) by SN7PR04CA0049.outlook.office365.com (2603:10b6:806:120::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.11 via Frontend Transport; Wed, 26 Nov 2025 14:14:15 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by SA2PEPF00003AE6.mail.protection.outlook.com (10.167.248.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.7 via Frontend Transport; Wed, 26 Nov 2025 14:14:17 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 26 Nov 2025 06:14:06 -0800 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 26 Nov 2025 06:14:05 -0800 Received: from nvidia.com (10.127.8.14) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20 via Frontend Transport; Wed, 26 Nov 2025 06:14:03 -0800 From: Maayan Kashani To: CC: , , , "Aman Singh" , Yuying Zhang , Viacheslav Ovsiienko , Gregory Etelson Subject: [PATCH 22.11] app/testpmd: fix flex item link parsing Date: Wed, 26 Nov 2025 16:13:59 +0200 Message-ID: <20251126141400.2859-1-mkashani@nvidia.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF00003AE6:EE_|MW4PR12MB6732:EE_ X-MS-Office365-Filtering-Correlation-Id: 28eb45cc-cd03-450d-131c-08de2cf615c3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|1800799024|376014|36860700013|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?oDjFLz8JdqpgkhPrrxF9inmVlHCzvmyCZB+jxwEUKds/fIyV+5TeDnyz97Tt?= =?us-ascii?Q?Eznb2+IzBYPbVAutSrc7b2WEhKpbKS47rmfgWCx3nSTpdOZiSvfe+2iqbNBT?= =?us-ascii?Q?Q7j/Jnh6GzkA9f6ORppQ9trKEyxgqc2BWhTkZYS3HyEqvl9yPlmAXyGFYPHP?= =?us-ascii?Q?B5cssc1H+x1izzJ2+nYaAINVTWz2/YyTuSxwNLCMvoG5YYueS2+Fucqnx6qS?= =?us-ascii?Q?LRYYnq8pplwx3FbToV2JWO/yAH3km7EXTv4Z5C099oC15V4/7Quha4e7OOmc?= =?us-ascii?Q?UuTtsQgNhbCPGnm5n5P07HCvcfHkZEm4ojHQDzcizY7aumkF9ENFuZv/5VnX?= =?us-ascii?Q?6itBHYGKBAyAGCoTk250DL2YJBYXBg0OgDwZq8FCg/l5XbzQzVdQN8JWeQ/O?= =?us-ascii?Q?qqLfR5yhFts554J3H3xNcOAffFPbuu7bIXvz3lbSg15+eMPaZB/MoFBdrBAG?= =?us-ascii?Q?9StgCsi6PdKF0XraVB9/sOQwjTDnRCYUctqgYbj9B7nSDX7lDLOF0dTP+6Nu?= =?us-ascii?Q?/O3kxb1xtqjvvZHsRKOR1qIay1xsWNbGliBe2UQI0sC1RXLp0ze4nqu6IRL4?= =?us-ascii?Q?y+eDBT2qK91mh3wqojnrXb7QSCkdsbwLZblqA3E0pjRcnd4jhooFNjSppYTn?= =?us-ascii?Q?Js8qMHzaWbO44ExFGe0pyXFOzr5EZrTzXm4j/mMYPRbVQuWUv7NFGaAbBvb5?= =?us-ascii?Q?OaIOUiSfJjwoh8ZTROmpmypAmDvwwg7yXUVLgb+Al88WNU3FgKmTCvG30t2Q?= =?us-ascii?Q?78P6Er3T/f9NxCO9E7mELUfuNv4d6Oee3tlX0tCZleiQGX7gmzJUsWYenUil?= =?us-ascii?Q?coyXdIj30KJ5Ut3RIb3dhhHEDqxJeSkcZInWmRg2hnOsZWOmsE454Oz+uopk?= =?us-ascii?Q?I2H0SsHv85UHAncDrowmJTvuO4ajKvs1X3Cz3+o7Y/tnxifFGi8VU/HaC27m?= =?us-ascii?Q?J+FDYjcnJkzX2wwHKWTFSEfZw+ZIraNUqrbOYF9X9RN8FlYxrCGerOBGel4h?= =?us-ascii?Q?/zara1CfFZzdARgMW5vQi68Wngyv3YwpCXs5sfdW30Aluw8uqllr2FQSGyFQ?= =?us-ascii?Q?LtMSoDsZ2wkYjBO9fV0eXkRhv12CeKD0HILz6FH/q4VywU7eVsky6kVPbm8P?= =?us-ascii?Q?A+p3tEIbZCKT87ugU+U0J8jY4Obnvhf0G56p9wcDKX7EKX/UIRwCv/cM8HeT?= =?us-ascii?Q?h2xj0JB3P+3L4abV/helwipJTdNd4afG1fA6WhvQZ0pkxNVTgRmgxK0z9xNM?= =?us-ascii?Q?EW9RgLWhb9+Gmcu4FLD/QsYLOKBKtjAA4+Tm4yUzDKmEw5tyzZaCYQdFg2Gf?= =?us-ascii?Q?Va2FORBMMjO0QuauvBTbcEZM57MWk+IzCoIDzowsrsoo1H7Ggji315752i1J?= =?us-ascii?Q?FJjAnF5IkdNZWTgmTwAUGTY9ivVn/bj4kuHG+cQHZZap4x4mOebNmGS/Z/uC?= =?us-ascii?Q?FeX/6SyGcmSQfeSiudKIISvzS70gJ8XYs9kFYiVSxFdjaCuBtNW8a3ztYN60?= =?us-ascii?Q?eILhy1VSpwbMfJXiVB7YLIM1JLJer8GgkKrjg3Vk01OLM8lOcUGwJ/dHMJvn?= =?us-ascii?Q?Y3oyNa+moEHdXTMSWh8=3D?= X-Forefront-Antispam-Report: CIP:216.228.118.233; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc7edge2.nvidia.com; CAT:NONE; SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013)(7053199007); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 14:14:17.0612 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 28eb45cc-cd03-450d-131c-08de2cf615c3 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.118.233]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF00003AE6.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6732 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org [ upstream commit 39454e245b ] 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 enlarge data buffer to avoid the buffer overflow while continue to report same buffer size to flow parse. Fixes: 59f3a8a ("app/testpmd: add flex item commands") Cc: stable@dpdk.org Signed-off-by: Maayan Kashani --- app/test-pmd/cmd_flex_item.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/app/test-pmd/cmd_flex_item.c b/app/test-pmd/cmd_flex_item.c index e6e1cefeb3d..a799b31ffd7 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; sprintf(flow_rule, "flow create 0 pattern %s / end actions drop / end", src); @@ -143,21 +144,38 @@ flex_link_item_parse(const char *src, struct rte_flow_item *item) if (ret) return ret; item->type = pattern->type; + switch (item->type) { + case RTE_FLOW_ITEM_TYPE_IPV4: + sz = sizeof(struct rte_flow_item_ipv4); + break; + case RTE_FLOW_ITEM_TYPE_IPV6: + sz = sizeof(struct rte_flow_item_ipv6); + break; + case RTE_FLOW_ITEM_TYPE_UDP: + sz = sizeof(struct rte_flow_item_udp); + break; + case RTE_FLOW_ITEM_TYPE_TCP: + sz = sizeof(struct rte_flow_item_tcp); + break; + default: + printf("Unsupported item type in specified in link\n"); + return -EINVAL; + } if (pattern->spec) { ptr = (void *)(uintptr_t)item->spec; - memcpy(ptr, pattern->spec, FLEX_MAX_FLOW_PATTERN_LENGTH); + memcpy(ptr, pattern->spec, sz); } else { item->spec = NULL; } if (pattern->mask) { ptr = (void *)(uintptr_t)item->mask; - memcpy(ptr, pattern->mask, FLEX_MAX_FLOW_PATTERN_LENGTH); + memcpy(ptr, pattern->mask, sz); } else { item->mask = NULL; } if (pattern->last) { ptr = (void *)(uintptr_t)item->last; - memcpy(ptr, pattern->last, FLEX_MAX_FLOW_PATTERN_LENGTH); + memcpy(ptr, pattern->last, sz); } else { item->last = NULL; } -- 2.25.1