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 E3D20489EF for ; Mon, 27 Oct 2025 17:22:42 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DEC784028B; Mon, 27 Oct 2025 17:22:42 +0100 (CET) Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) by mails.dpdk.org (Postfix) with ESMTP id 224EC4067D for ; Mon, 27 Oct 2025 17:22:41 +0100 (CET) Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-474975af41dso33931255e9.2 for ; Mon, 27 Oct 2025 09:22:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761582161; x=1762186961; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Qb6SKVWGWCYiTDIxvYhbKRFsYrdhcXCU242l+CAWRsg=; b=atclRTg/4f0iEDgnZJnIFC8kd5Nl13R0iXoehdEFsZc2g3CYDC/7EneSYJARhN2u8w ZXUKpc/AIB1/XyuCjVXGXdEKADVcq264dojszMUvQofd/nm7Et+TGZv4rV+Z81Iobm9S fyXYILgOzSY3i6Mvdk70mLc8hN+GXGVm7QRFLxITWb/3IM3MI6nYOLuzycL9I9XAlLOC WpM17nQi9N2KQHWtexQ5xVK7KGVtX4n1YdF5jiVG9Ez9JXj39h0n4lepGAmm3unUCQ6L qUz5qHAPfBbVoCYyQLCS2fCtX+HJBLFi7GwHy4KanNp9hVgLFwkCS+4Qhv4JsGiOhtGx lY2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761582161; x=1762186961; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Qb6SKVWGWCYiTDIxvYhbKRFsYrdhcXCU242l+CAWRsg=; b=XSxE0Sr4lympqbdLME9xYnB3sG8VNNZKSgaVANzv+ftUNW1zeu/jOlsiWizbpsfqKM rq9+r/at4lPeX9IBNTVuXeYsM2FwCdWi+PxOpcXob7kpuYO2kLXimFWR2ww+LEfzfdkT cAmqSeZOrQ2iUXbXp9UvKK+HduCgm0ei1vP+bld7XFCA2PqO3WP4iTVVivN9V+Rk/dge uvwHHb5u/LBB9B7POah6Hu/8FLaMW4Y4i+HoGodf93bCV/j3HeW6k2l2LW7z5Yde1b10 XcndARVVw7J5mILJRQKBV8WfzhPvv+bJBhN3JvuoScYHekOdgZLxLQcN4xRGHVWb94ME PZrA== X-Forwarded-Encrypted: i=1; AJvYcCXK7A7tn52l9FSTHAmyPb9Z7StOS7rQq4Utn+MGBG+dwgQvAlbCnoul9qPq3TZzJT58x2dIxRw=@dpdk.org X-Gm-Message-State: AOJu0YycmSN+rE27JMOIwIYQYT+ZNMOREKUYc2ERDdyS3iGF2AkRJuf4 D0m6MGx6/XVxtylQKuNGRG+8zQH2X0a2caTvRZK8s16GRvbMLiAsAe8j X-Gm-Gg: ASbGncvZG5zfnyjNu+Sm4IZJcgSi5h26GUDMvZCoG5SdxcYI/CydehdRTQtDaW4KHjX +5ZNIQLrUSzc9Aci7J04pKpw7uXWjrSRnl5WYmingGFE2g4WMFSN9Ypq4awwf2hwKGkDTjTMPLn 2OlaRrhGI728bGkJajf2J9m4BVqUN6MxpVs4BRgZm3jjURi02+BwPj+HJVwSJgkoDdclOesMgdA LDINYXDIU5QO35oMh8trTFLWYAmaEZOCUGB/iKVEP7mWW/O5u1gnU2im0kOF/T3IcWIOA6qMNy5 MOl06ErpRMYLg14xf9motwlxBkayA09p/eM9EFG88pNKgNre9RYZXS76PJfjBjQqB5sUX79srsA E3XqokYyMrmZLqbZ4MG8TdLV6xOacpL3Ia+DdYzP2iHRmmzwBluHD49muP/g+mgCqep6puTJjv2 ZkWxWgiw== X-Google-Smtp-Source: AGHT+IETTWzEA978D32gXcTIpGgh8apXjIC6Ts0N6IOyjENBSWPTPrs2HkbrzMaWL9YfoEXVIlfw6Q== X-Received: by 2002:a05:600c:8710:b0:476:4efc:8ed4 with SMTP id 5b1f17b1804b1-47717dff6a8mr2620055e9.11.1761582160541; Mon, 27 Oct 2025 09:22:40 -0700 (PDT) Received: from localhost ([2a01:4b00:d036:ae00:6fc5:c3bc:147e:832c]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-475dd374e41sm145799325e9.12.2025.10.27.09.22.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Oct 2025 09:22:40 -0700 (PDT) From: luca.boccassi@gmail.com To: Anatoly Burakov Cc: Bruce Richardson , dpdk stable Subject: patch 'net/ice: fix memory leak in raw pattern parse' has been queued to stable release 22.11.11 Date: Mon, 27 Oct 2025 16:19:26 +0000 Message-ID: <20251027162001.3710450-48-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251027162001.3710450-1-luca.boccassi@gmail.com> References: <20251027162001.3710450-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 Hi, FYI, your patch has been queued to stable release 22.11.11 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 10/29/25. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/10383a47db49bcb93f0ef91aa46abee9f306fd5c Thanks. Luca Boccassi --- >From 10383a47db49bcb93f0ef91aa46abee9f306fd5c Mon Sep 17 00:00:00 2001 From: Anatoly Burakov Date: Fri, 10 Oct 2025 14:13:20 +0100 Subject: [PATCH] net/ice: fix memory leak in raw pattern parse [ upstream commit 3938eeec989181216ea3f9cc8eee931a2915ca5d ] Currently, when parsing rte_flow raw type items, we allocate some internal structures, but if errors happen down the line we just quit and never free the memory we just allocated. Fix this by adding an error cleanup section. Fixes: 848de9572c83 ("net/ice: fix raw flow input pattern parsing") Signed-off-by: Anatoly Burakov Acked-by: Bruce Richardson --- drivers/net/ice/ice_fdir_filter.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/drivers/net/ice/ice_fdir_filter.c b/drivers/net/ice/ice_fdir_filter.c index 8829041c47..e509e496b1 100644 --- a/drivers/net/ice/ice_fdir_filter.c +++ b/drivers/net/ice/ice_fdir_filter.c @@ -1881,7 +1881,7 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad, uint16_t tmp_val = 0; uint16_t pkt_len = 0; uint8_t tmp = 0; - int i, j; + int i, j, ret_val; pkt_len = strlen((char *)(uintptr_t)raw_spec->pattern); if (strlen((char *)(uintptr_t)raw_mask->pattern) != @@ -1936,19 +1936,22 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad, pkt_len /= 2; - if (ice_parser_run(ad->psr, tmp_spec, pkt_len, &rslt)) - return -rte_errno; - - if (!tmp_mask) - return -rte_errno; + if (ice_parser_run(ad->psr, tmp_spec, pkt_len, &rslt)) { + ret_val = -rte_errno; + goto raw_error; + } if (ice_parser_profile_init(&rslt, tmp_spec, tmp_mask, - pkt_len, ICE_BLK_FD, true, &filter->prof)) - return -rte_errno; + pkt_len, ICE_BLK_FD, true, &filter->prof)) { + ret_val = -rte_errno; + goto raw_error; + } u8 *pkt_buf = (u8 *)ice_malloc(&ad->hw, pkt_len + 1); - if (!pkt_buf) - return -ENOMEM; + if (!pkt_buf) { + ret_val = -ENOMEM; + goto raw_error; + } rte_memcpy(pkt_buf, tmp_spec, pkt_len); filter->pkt_buf = pkt_buf; @@ -1959,6 +1962,11 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad, rte_free(tmp_spec); rte_free(tmp_mask); break; + +raw_error: + rte_free(tmp_spec); + rte_free(tmp_mask); + return ret_val; } case RTE_FLOW_ITEM_TYPE_ETH: -- 2.47.3 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-10-27 15:54:36.581173886 +0000 +++ 0048-net-ice-fix-memory-leak-in-raw-pattern-parse.patch 2025-10-27 15:54:34.815950051 +0000 @@ -1 +1 @@ -From 3938eeec989181216ea3f9cc8eee931a2915ca5d Mon Sep 17 00:00:00 2001 +From 10383a47db49bcb93f0ef91aa46abee9f306fd5c Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 3938eeec989181216ea3f9cc8eee931a2915ca5d ] + @@ -12 +13,0 @@ -Cc: stable@dpdk.org @@ -17 +18 @@ - drivers/net/intel/ice/ice_fdir_filter.c | 28 ++++++++++++++++--------- + drivers/net/ice/ice_fdir_filter.c | 28 ++++++++++++++++++---------- @@ -20,5 +21,5 @@ -diff --git a/drivers/net/intel/ice/ice_fdir_filter.c b/drivers/net/intel/ice/ice_fdir_filter.c -index d593624792..9dfe5c02cb 100644 ---- a/drivers/net/intel/ice/ice_fdir_filter.c -+++ b/drivers/net/intel/ice/ice_fdir_filter.c -@@ -1865,7 +1865,7 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad, +diff --git a/drivers/net/ice/ice_fdir_filter.c b/drivers/net/ice/ice_fdir_filter.c +index 8829041c47..e509e496b1 100644 +--- a/drivers/net/ice/ice_fdir_filter.c ++++ b/drivers/net/ice/ice_fdir_filter.c +@@ -1881,7 +1881,7 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad, @@ -33 +34 @@ -@@ -1920,19 +1920,22 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad, +@@ -1936,19 +1936,22 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad, @@ -65 +66 @@ -@@ -1943,6 +1946,11 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad, +@@ -1959,6 +1962,11 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad,