From patchwork Sun Feb 16 16:53:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151534 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6C4D24623D; Sun, 16 Feb 2025 18:01:29 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 008BF40DDD; Sun, 16 Feb 2025 18:01:23 +0100 (CET) Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) by mails.dpdk.org (Postfix) with ESMTP id E8F6040150 for ; Sun, 16 Feb 2025 18:01:21 +0100 (CET) Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-22101839807so32799675ad.3 for ; Sun, 16 Feb 2025 09:01:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725281; x=1740330081; 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=Ox+czeXgjbDT/mWMJGQMQyMceRRbm8M1t97ch3xDIVQ=; b=W0YCId737fAPqqJLRBZpKqUYCB7o4r3KlbWudzLTFTZUcNo7w6s5cwSywBhVe7MD1s NE9ZUW+MiYhJed0kjQ+g4Guwskujr8u/XEMJ0bNBwp0VdgAm0nm6/zRnwzK7gQOly2EV fouLE8ME/9epDPp/S5tu0kCFvSpxyaTNiLV198LrrM+6LqU9kRzde+5dTCgkCAebzFa8 HA0jfk3Z947GClFI1xYhJYbEqnZafkNGqzPEGGTB8mo2JjA84TGil6ZGCwIuKWaR9hg7 fh+0wEC9epJ83NKSC000wrnFz2xgWdKnn1qVh32IcIWh6J5sdW3PyRWbr+j+uWBm2MO3 NhSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725281; x=1740330081; 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=Ox+czeXgjbDT/mWMJGQMQyMceRRbm8M1t97ch3xDIVQ=; b=nEN4WSps7/Bbkl6rZusVqqXa4F3E9/FwKJe5JRzlj0C7SVB5ECdZ/6nS4rew5/CjfL YFviQ2DVux60LSaCa6h060/H6JsgNDCsLhQQDoAMgzoVBDwR+ee08/TvrcKp68VVrfi0 hLMs4nFDfbnUXf2WJ65Ffb6nWNq/lKimAnG/CStEfjRmK0axr/r5/zywpi29Pc9yVhJF w/mVyvvoEacpjpwVdX9Sro07En3VoWyTiRd9Fe+WR37Pfw+IyjK+6AWJ9TgEAhiqLk8V /RMUl0B0p339mlEBSxBnXcB9w12qTaTkfRM0GCJ3tRtUe5Ez7eaEoZ/cczB8fJdPuOSX wtlw== X-Gm-Message-State: AOJu0YzaSiamzd2K0j/qdpN+m/ceHEGbpOIFzpSc3t3y7/kFosszBcpD y9yecL/5tUcTvLBJ/nQ6LValrfBEzAyBazoVZzDg/ZL54DSbVKB1HUyXKbmNFETcQ33SqX8KR0P j X-Gm-Gg: ASbGncsShSmTJuZEFH9YK6MFwvM+zQ2WckgFnaMRZ+8UfbP8z9TTJK1t408UVylSEIp lh/S7HzHfzZVKAeXaDYd72ZM7QYPzrsAVrNiRkUNyiHZmVF/bm2VvLUAzXYxiRMO6uiiLYAl5r3 3tSfWsBNnCV7DYp+dz1L9TXrshG5HjONjkzN0naPhCzavqFkgOtihoEMxva7Tyg3Y0kHXoq4pUD abLeMt96/kvaY+uz5o3jyfcPAJ+VKZilEhZvGKpuUOKeZmv7A2MtL7qgYwidERetipDd7bcBQXx eEl9cgKOV3cRAsN/SXDCtybwe/UcV3SDyeFg4OPNL3IkweQ1GKcRHL6VaMsx5N1OiDvC X-Google-Smtp-Source: AGHT+IGuyyvK2Gk22Mix4APN1Mk5/I9fQxqJv4lBivD7N/e7GS5oCU205qKnQCzua4WStIVOZUJJNw== X-Received: by 2002:a17:903:174c:b0:21f:164d:93fe with SMTP id d9443c01a7336-221040e7162mr107614265ad.53.1739725281025; Sun, 16 Feb 2025 09:01:21 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:20 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , =?utf-8?q?Morten_Br?= =?utf-8?q?=C3=B8rup?= , Tyler Retzlaff Subject: [PATCH v8 01/17] eal: introduce new secure memory zero Date: Sun, 16 Feb 2025 08:53:00 -0800 Message-ID: <20250216170110.7230-2-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org When memset() is used before a release function such as free, the compiler if allowed to optimize the memset away under the as-if rules. This is normally ok, but in certain cases such as passwords or security keys it is problematic. Introduce a DPDK wrapper which uses the bzero_explicit function or SecureZeroMemory on Windows. Signed-off-by: Stephen Hemminger Acked-by: Morten Brørup --- lib/eal/common/eal_common_string_fns.c | 14 ++++++++++++++ lib/eal/include/rte_string_fns.h | 18 ++++++++++++++++++ lib/eal/version.map | 3 +++ 3 files changed, 35 insertions(+) diff --git a/lib/eal/common/eal_common_string_fns.c b/lib/eal/common/eal_common_string_fns.c index 9ca2045b18..31804101cc 100644 --- a/lib/eal/common/eal_common_string_fns.c +++ b/lib/eal/common/eal_common_string_fns.c @@ -10,6 +10,10 @@ #include #include +#ifdef RTE_EXEC_ENV_WINDOWS +#include +#endif + /* split string into tokens */ int rte_strsplit(char *string, int stringlen, @@ -98,3 +102,13 @@ rte_str_to_size(const char *str) } return size; } + +void +rte_memzero_explicit(void *dst, size_t sz) +{ +#ifdef RTE_EXEC_ENV_WINDOWS + SecureZeroMemory(dst, sz); +#else + explicit_bzero(dst, sz); +#endif +} diff --git a/lib/eal/include/rte_string_fns.h b/lib/eal/include/rte_string_fns.h index 702bd81251..79ca9abd67 100644 --- a/lib/eal/include/rte_string_fns.h +++ b/lib/eal/include/rte_string_fns.h @@ -149,6 +149,24 @@ rte_str_skip_leading_spaces(const char *src) return p; } +/** + * @warning + * @b EXPERIMENTAL: this API may change without prior notice. + * + * Fill memory with zero's (e.g. sensitive keys). + * Normally using memset() is fine, but in cases where clearing out local data + * before going out of scope is required, use rte_memzero_explicit() instead + * to prevent the compiler from optimizing away the zeroing operation. + * + * @param dst + * target buffer + * @param sz + * number of bytes to fill + */ +__rte_experimental +void +rte_memzero_explicit(void *dst, size_t sz); + #ifdef __cplusplus } #endif diff --git a/lib/eal/version.map b/lib/eal/version.map index a20c713eb1..82a3e91c97 100644 --- a/lib/eal/version.map +++ b/lib/eal/version.map @@ -398,6 +398,9 @@ EXPERIMENTAL { # added in 24.11 rte_bitset_to_str; rte_lcore_var_alloc; + + # added in 25.03 + rte_memzero_explicit; }; INTERNAL { From patchwork Sun Feb 16 16:53:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151535 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id ED6F34623D; Sun, 16 Feb 2025 18:01:35 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 339CC40E11; Sun, 16 Feb 2025 18:01:26 +0100 (CET) Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) by mails.dpdk.org (Postfix) with ESMTP id CCDB44065F for ; Sun, 16 Feb 2025 18:01:22 +0100 (CET) Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-2fc20e0f0ceso4283584a91.3 for ; Sun, 16 Feb 2025 09:01:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725282; x=1740330082; 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=XHYdq434PJealTXPJqVJdnEDtH8hAF0XExmSu/YBuaY=; b=PadNLAShTxV4WTzfl6zpRLh++g1zAPXFSE2X3RCQGT2qZP68SvIzt6u89Dut5Zrrc6 jo/biZT2K+B9sknbxzyHtaZzCD1Xs4Fx7I/jXMb2EPMxyQzkmGd5sCLPNVEln0iy04WS 9qycXYef5LcSQT74034LLSX8hHj4TQziZZweRNYuONx8v2HgxOf33HxsF+LdwNaFiqyU wePDHiGj9KTDhOOarpvKQUCi3XbU0jaZfz6+SCSjn6DU6TwGRH2kbVVJr0PfIGeG7zoH y6lSgGTlvkK2Bx8IiKt/gBOjhabzqEZm0OIEdnbz5/erbQ6sYPWDf8c6vEyi/lWsN7R/ heqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725282; x=1740330082; 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=XHYdq434PJealTXPJqVJdnEDtH8hAF0XExmSu/YBuaY=; b=gK5GD6SRQjzeaF4SJYRuaGH4t9XfgmYQ/reoWIxh73yqi0Chhm3wfD1v19y6IWwRqc eHZMEhLFo0IQ5ZScaqrpyfjN54gJworaj4hO/wsQXtZrLgpzQNg/ekhAX4ZfO05XC4L0 vAyDAdgch+p62eaAp/g2F9B9F2QCvlShc86qzDldBTEMFjU6w9c7Z1esxToeTK3IeZNl sGEYc2w7tCK6OcY68OnFxN0drIXwTEBF8/7NFfI2Oz7Js/LSg5S0cfqKb1BG60O3rqEZ sD1FCMmdAQMc8S0WUjlN4HDdKaXMg78+OTJloTl9amcYLOFnkDzfCIScGBtaEDFtche9 fu7Q== X-Gm-Message-State: AOJu0YzZBYSHNYsIN065yilocL1SiZUzw0e4MNX4oeqmDGEg59SPiixf jUhjsXnJQM39SBTURljpqaCyuG+VwkI6Cniq5TCjwYeQ9FYWsTvOZCobbazH/qNXNRaI4PNIB3p m X-Gm-Gg: ASbGnctohfjw3K3L4PnQQ3YDKLRw7PQ3Zdo1m/CyRhAjphwVaXs2SnQbdBo6+yWwLLy kSZBMyiDtB1BF4kJasfmQbzJqJqtWNdRuKRocw0MQwxCfSbWOkl3TIFkjQtiq5Ezoyrl+0xTlmH cmEoyQ1Vz/O8l0GppGCge0iIq9imNlsGueYMiIVozYOa6QaEWD9N4zr2iH/0kdiyh8JfMN/ydxq EcCi8XQhpI28SRgzW26FunYu2Fwfkho7moBu3/tHi8dX3GGbKq6YpI8RFvcE/5qrnO9ASLPle7Q s+ouGmytXclLVcUy9AU7RskpdK7/zM9XizyYcnQywj1FgVwA9rnkDrT0rRqseKYhJE+J X-Google-Smtp-Source: AGHT+IE/QljnUSSJ+2onFGNSRLtrSLjqBVsQcvDLAGNIkD4geyIwhop4QK4k0dUI9PY9BGmcxOUCpQ== X-Received: by 2002:a17:90b:3ec5:b0:2fa:20f4:d27a with SMTP id 98e67ed59e1d1-2fc40d12e34mr11567577a91.7.1739725281897; Sun, 16 Feb 2025 09:01:21 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:21 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Tyler Retzlaff Subject: [PATCH v8 02/17] app/test: use unit test runner for string tests Date: Sun, 16 Feb 2025 08:53:01 -0800 Message-ID: <20250216170110.7230-3-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Switching to unit test table makes it easier to add new tests. Signed-off-by: Stephen Hemminger --- app/test/test_string_fns.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/app/test/test_string_fns.c b/app/test/test_string_fns.c index 3b311325dc..ce07c17228 100644 --- a/app/test/test_string_fns.c +++ b/app/test/test_string_fns.c @@ -205,16 +205,20 @@ test_rte_str_skip_leading_spaces(void) return 0; } +static struct unit_test_suite test_suite = { + .suite_name = "String functions tests", + .unit_test_cases = { + TEST_CASE(test_rte_strsplit), + TEST_CASE(test_rte_strlcat), + TEST_CASE(test_rte_str_skip_leading_spaces), + TEST_CASES_END() + } +}; + static int test_string_fns(void) { - if (test_rte_strsplit() < 0) - return -1; - if (test_rte_strlcat() < 0) - return -1; - if (test_rte_str_skip_leading_spaces() < 0) - return -1; - return 0; + return unit_test_suite_runner(&test_suite); } REGISTER_FAST_TEST(string_autotest, true, true, test_string_fns); From patchwork Sun Feb 16 16:53:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151536 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1248E4623D; Sun, 16 Feb 2025 18:01:43 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6FDFC40E1D; Sun, 16 Feb 2025 18:01:27 +0100 (CET) Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by mails.dpdk.org (Postfix) with ESMTP id 99BDA40DD8 for ; Sun, 16 Feb 2025 18:01:23 +0100 (CET) Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-221206dbd7eso6874405ad.2 for ; Sun, 16 Feb 2025 09:01:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725283; x=1740330083; 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=rAR4ZctvgYZrv+iP1slYJzFPiuMnmFTGiePO9PNu9qQ=; b=MozkFSaF434G+IRzT4m41AJfG2JoWy/XUWhu0kvPjervNZ9qy6+/+NGJUtlhfyTstk k+J1tPIkf0SA6dAX6gg5rdGetF1ANsDGRyAr2v0AOcREOx/IFwbCKne9cxXUCbNluakg 24L+1+DPfabgsY2F8qqgnts5Pq+muw+AQaGiSxRd0cUzzv52Ze5Eb31d8vxdraPuCcvR 2ZDRxACOkMAI2KOs/ozAxXtXzYmYAwhUXBrPpAm03p9gOr3Mzsga+nz2upuqD0mupAfg FMadMp7QsbCvFmwqBhswONY+dJpwWXPeODbw+un6t1Y0kpvkcv81OSv2PpiY8f94gIzb 9Szg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725283; x=1740330083; 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=rAR4ZctvgYZrv+iP1slYJzFPiuMnmFTGiePO9PNu9qQ=; b=NMrn+sV7YGIltqYwg/kxuSq/3FBnAuq4iVBVOtVI9BqW2q4fGKEefMnpCsWNPACwcg R2oSOC+Lfh8u/9g/9eNGdtY717Zwq7ubzWgZG1FgINdw1rBBL1L8Z5BhRqJfMceEDOp+ ZkfgWLNek9ACvBhXmFdO+bgNwdsgwVBfnxMa7KNNlhdrb2LBH/aODjl1BxSJRKRImuj1 OMbDLgzYadqJu4Fk1I0O6Gjoa6JY+8vHaokY0VzH2H8t5EvG+SPWT4XHaHMQevjbiAUU CzFbdFyae66OB7Txh3BMClOu1Rh8ZbXutSISCdMSh4SG8eD550tQy+rnae3LMpEm9AHK KFGw== X-Gm-Message-State: AOJu0Yws7UEEfRhEJ1w/jJqwt4gsCmsQLi7C81EDFYIGS4jF6u+A1O1V o5XHdccmzVpn/JtfVpldSOKYtfr1RfT95cyK6BKlHJhsTWj6jtpuSKXhG7Nw8p89Tu7RFw3syYg 8 X-Gm-Gg: ASbGncvFkMns5bprlQFvjse7MNq/li0moTHWF0A0dIEsCmJ970s126WeniIgoDoMb/z Wl8yQhEXrSX7yHWWCIGA7NzyueXLrozd4EnXuj3hsPBxPbxGBm/GhhIwjwHqzODLicJHQjOvddt pVB8uoSO/D85di0LErUcll4GEi0eKSPn3GSaYHs3+f9MW1TE9sNfZf3sxYzZyKUIxHtMjkAzsV5 Urx6DjYDh3/Nb+iPuaUpcXFhJInzxZhysFWoAfp1E6IZOGKZRpmFCDgnRbJZM+VPvgIU8H1b6GO s4TzoYraltENCZ4jClTIyNVMl3Ym/yfMpKax72wpsyrWE34AaT+0LNwR0DhFsW9VXcEV X-Google-Smtp-Source: AGHT+IHIKxsmD5gUDOeHsFXfj8+CTuG2R2HMB3Ip3F4cgdknIWnzFg383yKWKqXUhzcKQ5gYNPpziQ== X-Received: by 2002:a17:902:d58b:b0:220:c813:dfcb with SMTP id d9443c01a7336-2210408d75emr118805745ad.39.1739725282709; Sun, 16 Feb 2025 09:01:22 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:22 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Tyler Retzlaff Subject: [PATCH v8 03/17] app/test: add test for rte_memzero_explicit Date: Sun, 16 Feb 2025 08:53:02 -0800 Message-ID: <20250216170110.7230-4-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Add a new test for rte_memzero_explicit. Test strategy is based of glibc bzero_explicit test which is based off a test in the OpenBSD regression test suite. Signed-off-by: Stephen Hemminger --- app/test/test_string_fns.c | 56 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/app/test/test_string_fns.c b/app/test/test_string_fns.c index ce07c17228..b4fe3a7c30 100644 --- a/app/test/test_string_fns.c +++ b/app/test/test_string_fns.c @@ -8,6 +8,10 @@ #include #include +#include +#include +#include +#include #include #include "test.h" @@ -205,12 +209,64 @@ test_rte_str_skip_leading_spaces(void) return 0; } +/* + * This test does a variation of what OpenBSD regression suite does to test explicit bzero. + * One thread creates a buffer then zeros it but does not touch after that. + * Other thread checks that buffer has been cleared. + * A broken implementation would get optimized away. + */ +#define TEST_DATA_SIZE 123 +static int +run_memzero_explicit(void *arg) +{ + uint8_t *data = arg; + + for (unsigned int i = 0; i < TEST_DATA_SIZE; i++) + data[i] = rte_rand_max(256); + + rte_memzero_explicit(data, TEST_DATA_SIZE); + return 0; +} + +static unsigned int +get_worker_lcore(void) +{ + unsigned int lcore_id = rte_get_next_lcore(-1, 1, 0); + + /* avoid checkers (like Coverity) false positives */ + RTE_VERIFY(lcore_id < RTE_MAX_LCORE); + + return lcore_id; +} + +static int +test_rte_memzero_explicit(void) +{ + if (rte_lcore_count() < 2) { + printf("Need multiple cores to run memzero explicit test.\n"); + return TEST_SKIPPED; + } + + uint8_t test_data[TEST_DATA_SIZE] = { 1 }; + unsigned int worker_lcore_id = get_worker_lcore(); + int rc = rte_eal_remote_launch(run_memzero_explicit, test_data, worker_lcore_id); + TEST_ASSERT(rc == 0, "Worker thread launch failed"); + + rte_eal_mp_wait_lcore(); + + for (unsigned int i = 0; i < TEST_DATA_SIZE; i++) + TEST_ASSERT(test_data[i] == 0, "rte_memset_explicit did not zero"); + + return TEST_SUCCESS; +} + static struct unit_test_suite test_suite = { .suite_name = "String functions tests", .unit_test_cases = { TEST_CASE(test_rte_strsplit), TEST_CASE(test_rte_strlcat), TEST_CASE(test_rte_str_skip_leading_spaces), + TEST_CASE(test_rte_memzero_explicit), TEST_CASES_END() } }; From patchwork Sun Feb 16 16:53:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151537 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 96CA74623D; Sun, 16 Feb 2025 18:01:50 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AE32C40E30; Sun, 16 Feb 2025 18:01:28 +0100 (CET) Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by mails.dpdk.org (Postfix) with ESMTP id 713BE40150 for ; Sun, 16 Feb 2025 18:01:24 +0100 (CET) Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-22128b7d587so4725225ad.3 for ; Sun, 16 Feb 2025 09:01:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725283; x=1740330083; 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=BKsHwBy4OeQM441PNFrvjPnAsOJIxD9G/WylTgJ1y/c=; b=1B6eauzhcLcwcSG3deUIBAwtAnR51gBriPhphpZ1bV4FOeqJdXwq9zZjc2gASFt0MJ 1GPwYOH1J1oeANzdKc806dnFlefqKScSL9fzUY3cRWIxrq8cICEDTR61ffw3zaYsqj6e 758m7FFiI2OSOrzae22li7H7dB/ootmrFk/7j3WwIJKDQF45RGzUTyeSUDsnmOQITrxu EV/4dEfbmRm8LvIhFSK4WQ/tcGftsj4h/R1jY6cSd0sGf+Fcma123aQqLAWmcs/Zp4Jx nKiHqLcF6+qO+o6oyd2Ekeg1QH3REwnrVGOhx4C4t/1P9kMHiFYwJa8oFXrPr4ele5w2 9VYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725283; x=1740330083; 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=BKsHwBy4OeQM441PNFrvjPnAsOJIxD9G/WylTgJ1y/c=; b=eCNfzOmd8zmOln61zaK30SpLnozGzhZR2soWzVFbeMqZY0lSah7AzuKKTC3282gGES YBI+IXPsUuTRnV7QQ4MXLP+sZyQhdZQXiWfjiLwcbg0D0X/bHxbEw0fcA6JDS59jXnGd qmQwn58AF3k8c+cTXsaQIy5mVi6Y9ItvDmQxjg80YSqQ5GUZZClE98StnQWxGZW6LHn+ 7zrczXWIjzQY/14U9+I0cwmgc+Sqw1rCufBH4Oe70qXPvAjXyBqgXkws64Ihv2wwBuRW g4SfeYYkdtlZRqjx2rqHIns6OSr7XXPDLo22lO7ij48tE33furqm/+uB9MfcIms1jyVq BPFw== X-Gm-Message-State: AOJu0YwE0qOnt6U3tH85VmmWU6XuwrswzDjhQnfTsUFiq90oxBD8IOoP sYrWwQumFWm2cdgvqY3Ot1KieOO60KBxPA6L6v0/wVI0nsIVJZf9oef60A4j7IV5LKOOV4y+XQM j X-Gm-Gg: ASbGncvgLm6Btxm3mAdSA9q56nf/N6JwcdP1EkjHKYT+lc+dddToGGQHSxu4M6oMOXi +5HVKXbFI8v+Cu62G+Lchk6AgQ8TzVlbBEX1l53O+wiCFWK39GY5mjPwjywIpiZpQCV9ZUO2SyO DLQRqsEk2wpZoYBPpqX5VFHOOnzouQV6UwAIy6Dh4Oe78bzO6kGfod69lYWOaFuXE/4e1mNYDXR qMZlZefvxzXO1neB3EkUniWSNGBWq4rEmq9zjzPYRvVzNFRXeuhWq3S9jqZZSfCiMyIf4pgPbQG Moewe5ErNPj6SD0TE64MiC3km9pXsudemjjGlxFbW+JpjfDEo0UR+l6Qe390abVHWnq/ X-Google-Smtp-Source: AGHT+IGn1dpLr85/rzPN+mZ7S7mJ/u5SQ3pbWgdxlx9G9uM5pPHh/56Jp0DIFiTuWIU5NSWo6VD2VA== X-Received: by 2002:a17:902:e747:b0:215:a434:b6ad with SMTP id d9443c01a7336-221040ac0f9mr111197165ad.33.1739725283494; Sun, 16 Feb 2025 09:01:23 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:23 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger Subject: [PATCH v8 04/17] app/test: remove unused variable Date: Sun, 16 Feb 2025 08:53:03 -0800 Message-ID: <20250216170110.7230-5-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The buffer tmp is set but never used. This leads to warning since the memset could be eliminated by the compiler. Signed-off-by: Stephen Hemminger --- app/test/test_cmdline_cirbuf.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/test/test_cmdline_cirbuf.c b/app/test/test_cmdline_cirbuf.c index 8ac326cb02..f6361d49e9 100644 --- a/app/test/test_cmdline_cirbuf.c +++ b/app/test/test_cmdline_cirbuf.c @@ -251,11 +251,9 @@ test_cirbuf_string_add_del_reverse(void) { struct cirbuf cb; char buf[CMDLINE_TEST_BUFSIZE]; - char tmp[CMDLINE_TEST_BUFSIZE]; /* initialize buffers */ memset(buf, 0, sizeof(buf)); - memset(tmp, 0, sizeof(tmp)); /* * initialize circular buffer From patchwork Sun Feb 16 16:53:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151538 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 173D74623D; Sun, 16 Feb 2025 18:01:58 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 23D7140E3A; Sun, 16 Feb 2025 18:01:30 +0100 (CET) Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) by mails.dpdk.org (Postfix) with ESMTP id 5104440E11 for ; Sun, 16 Feb 2025 18:01:25 +0100 (CET) Received: by mail-pj1-f43.google.com with SMTP id 98e67ed59e1d1-2fc3027c7aeso3942987a91.0 for ; Sun, 16 Feb 2025 09:01:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725284; x=1740330084; 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=vfv7YouX/mn3U/ivFt/42eQhcDQdoQM4ulomb8xL3+Y=; b=j0s029aTOG5B5UK+qNRmnew2zHZvN1vC/SY+Ho55iJJd6AgaqP0YVfPJFLPrVBxJdr KWjYqrB2meyHwHlmvvi+9ANksXDUNdZiwB4nanyCbOUncqw/Q+J2vYgtL7phzMC1h3Wk vj7tiiFfHRpvcKUsn0QUEKEDtnH5PpGoRcqWr/2XAK88VJ1TEkQpAoa5zfYUSkgaU7OI 3w7aAPRvEFTKDNCKCo5/xz6f1qL4Tt8BN/WyHg9/gsGf5naYW1t/3RvZcELgN/Q4yQlL lGtJlAamoTWzAMAyXkjzHFCUUOCyNUn+pXtXYxs481S0B7hTsw5Hf/P+Ee1HfAwqTbWg dApg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725284; x=1740330084; 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=vfv7YouX/mn3U/ivFt/42eQhcDQdoQM4ulomb8xL3+Y=; b=SodDIBoSmSo/snlEQdNw4NARAOYfZpHcFOePvV9AEDiaBaKmZ5u2NFN3RKQJx+OrYd Tq5JI4wRdFAkpzHPtfA5RJ9B7bX0FkOMQP+Y62/hEjcByCz/MMIaT36LCfR4o5aQ67bS rls3sdqz2gqLmqAwLKB22OJ8OhYAsO0OX6g2Ir4pG2DkIAUt2jJdH2/Z9DIvJGttC7MR nM01/uIMjiKc2ZgEOVTsoWz9glxDZ4BVNJa7+NHDVL9O3LKImqMmjhgfycx1amgt+79D OezwNkGpbZEygPrToK+wrPSglopfvRS49ZfvD4S1FkZKrLUDTJBsOgpOs1Q5fuzalJeg JS2w== X-Gm-Message-State: AOJu0YzMMTSdRGapYwi9RvnT3zPE9IL8FbWpAG4iTqqSFf2aeSlI903m yd7W5YGrKFziL9jjlh7Az0hOlgi1nH3iNATDPZ/kl/xCjijK4VpRWsKAh4m8ByoXbb3Onn7TfES G X-Gm-Gg: ASbGnctpM5RJd3bS17gwavMtk6gqg5wTW70wBRYNxpigTKZLPBdefJ6iapvYmCtzFR/ HsXxaT7lV+nnUrLUXcS6mKemZm6Sqh6q7d7V6CzfTyaw23rG4IIaNfkBk8x8zl5QCFEWP/OGC+3 yl95BcAzmGlZHaAPmhBbEKusRPqqggJ4ECZJ2kR+qtbMiCeALTPsMx8AkJp/tYL2maGTBH4i7BF JcxX6d1oc7VAuU0G1YxjPmiobAFstt4fCP0sB54+IQc/wFCsAp/yuenstmIt/KecuRtijHsuZ0n tRslvFwy/TWCpoyY0eOawpO9oFLvkBM1aCjfDDei0FSbc2SClIiSMjLWLZ+T0JuIvJDQ X-Google-Smtp-Source: AGHT+IG7yQr0GoP6KGeDERMkc2+oLwD664Jfcdeno0fXo+Dyc0IY8DiYsrwpCkmC3CDdZLpZeAdbjw== X-Received: by 2002:a17:90b:3809:b0:2ee:d024:e4fc with SMTP id 98e67ed59e1d1-2fc411509b7mr11136484a91.33.1739725284457; Sun, 16 Feb 2025 09:01:24 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:24 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , =?utf-8?q?Morten_Br?= =?utf-8?q?=C3=B8rup?= , Anatoly Burakov , Tyler Retzlaff Subject: [PATCH v8 05/17] eal: add new secure free function Date: Sun, 16 Feb 2025 08:53:04 -0800 Message-ID: <20250216170110.7230-6-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Although internally rte_free does poison the buffer in most cases, it is useful to have function that explicitly does this to avoid any security issues. Name of new API is chosen to be similar to Linux kernel kfree_sensitive() to make porting drivers easier. Signed-off-by: Stephen Hemminger Acked-by: Morten Brørup Acked-by: Anatoly Burakov --- lib/eal/common/rte_malloc.c | 30 ++++++++++++++++++++++++------ lib/eal/include/rte_malloc.h | 23 +++++++++++++++++++++++ lib/eal/version.map | 1 + 3 files changed, 48 insertions(+), 6 deletions(-) diff --git a/lib/eal/common/rte_malloc.c b/lib/eal/common/rte_malloc.c index 3eed4d4be6..fc2d2ae3f1 100644 --- a/lib/eal/common/rte_malloc.c +++ b/lib/eal/common/rte_malloc.c @@ -15,6 +15,7 @@ #include #include #include +#include #include @@ -27,27 +28,44 @@ /* Free the memory space back to heap */ -static void -mem_free(void *addr, const bool trace_ena) +static inline void +mem_free(void *addr, const bool trace_ena, bool zero) { + struct malloc_elem *elem; + if (trace_ena) rte_eal_trace_mem_free(addr); - if (addr == NULL) return; - if (malloc_heap_free(malloc_elem_from_data(addr)) < 0) + if (addr == NULL) + return; + + elem = malloc_elem_from_data(addr); + if (zero) { + size_t data_len = elem->size - MALLOC_ELEM_OVERHEAD; + + rte_memzero_explicit(addr, data_len); + } + + if (malloc_heap_free(elem) < 0) EAL_LOG(ERR, "Error: Invalid memory"); } void rte_free(void *addr) { - mem_free(addr, true); + mem_free(addr, true, false); +} + +void +rte_free_sensitive(void *addr) +{ + mem_free(addr, true, true); } void eal_free_no_trace(void *addr) { - mem_free(addr, false); + mem_free(addr, false, false); } static void * diff --git a/lib/eal/include/rte_malloc.h b/lib/eal/include/rte_malloc.h index c8836de67c..0a397e7723 100644 --- a/lib/eal/include/rte_malloc.h +++ b/lib/eal/include/rte_malloc.h @@ -51,6 +51,29 @@ struct rte_malloc_socket_stats { void rte_free(void *ptr); + +/** + * @warning + * @b EXPERIMENTAL: this API may change without prior notice. + * + * Frees the memory space pointed to by the provided pointer + * and guarantees it will be zero'd before reuse. + * This function is slower than simple rte_free() it should only + * be used for security keys and other sensitive data. + * + * This pointer must have been returned by a previous call to + * rte_malloc(), rte_zmalloc(), rte_calloc() or rte_realloc(). The behaviour of + * rte_free() is undefined if the pointer does not match this requirement. + * + * If the pointer is NULL, the function does nothing. + * + * @param ptr + * The pointer to memory to be freed. + */ +__rte_experimental +void +rte_free_sensitive(void *ptr); + /** * This function allocates memory from the huge-page area of memory. The memory * is not cleared. In NUMA systems, the memory allocated resides on the same diff --git a/lib/eal/version.map b/lib/eal/version.map index 82a3e91c97..cc19c676f8 100644 --- a/lib/eal/version.map +++ b/lib/eal/version.map @@ -400,6 +400,7 @@ EXPERIMENTAL { rte_lcore_var_alloc; # added in 25.03 + rte_free_sensitive; rte_memzero_explicit; }; From patchwork Sun Feb 16 16:53:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151539 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 973834623D; Sun, 16 Feb 2025 18:02:05 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5393140E3F; Sun, 16 Feb 2025 18:01:31 +0100 (CET) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by mails.dpdk.org (Postfix) with ESMTP id 3296740DD8 for ; Sun, 16 Feb 2025 18:01:26 +0100 (CET) Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-220d601886fso46238885ad.1 for ; Sun, 16 Feb 2025 09:01:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725285; x=1740330085; 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=Fy+98sLwPn8ziR75rr2XPg61ZFAzFcXbQL5dXHx2hKo=; b=uD8TlbHZNRrg8Z3hv61ra2Px0n1bSFpS4zX+r7fIWQxD1TK2nh+jOLXMeGlUTtGHL+ 9gBcmynobaDyal+Er8k0YB4eH5ECCMTiuXG20VoqkgGbOYA8oy/etxKshU38w+tvhQl2 2Tyln7rB6NrD1QI1DMz/tDNteVQ/0pHJHtyIzIMZZDwFObb5P7o2+wm8EptbiogGVBXP Eo/X3f73EJzbyaaV5OvXQ5ZDaWhT6gJa53HJ2+/FMWhnED0ByIGQ8k8kBkD/T5joVMwE ExLab9XjaBC82Lw0xJXEMYEJNzNrbIkINepQaUbPnkEIWa2/VbhIk2j1eKQMya/mgL2E c09Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725285; x=1740330085; 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=Fy+98sLwPn8ziR75rr2XPg61ZFAzFcXbQL5dXHx2hKo=; b=MqSTiAsyrPi1nYdQD3yYBVNS/kwn8rmEqhNlluxxMBCqvRIO+6k4TmblH9Dn1V7VtK 9l26fRwdDDrVoU4dL7xYL/GvLYE/G9fO2K1jitJUwxCOMDtupuN1Wb3/7/diTYl+Do6s SkrIZCdudkz5P3F6zkJYlCVkHQ4PkIcYPEM3FDZd+LxzjYdqi4A2udCc9r/vy6vaQXw0 WUAB2fTvyDxJTxSPwczInwgU2nxIjD1sASV+LzDAw8B7NK+nDtiLFO2k40TWOZ1dNfS2 u+ErRdqZL958143lfTHD8SWyuHPSJRqwCw+1WKE8kMT6KzfCuakqJiI+MVjlkAvqd0M0 kG/g== X-Gm-Message-State: AOJu0YxPdd7TW5a5SV2pXNnmG5rd2AWESOXi6MhP3aBqz/ykfh/uEE8t aOCrCDO0U721FcuVH2FzwL595wvDInP/vwMDeTfUdeWGqDufM4T6E7Gjpud2cAcDyf4C1Rnt063 k X-Gm-Gg: ASbGnct3gIgrdjcFFkOIAzrH8o4u7DjEAYNcjW6wHjs9nNGP8kaqKIHIBujR+kv8jGj VzNm9zBGCn8SyBkr94/DHGG3Q79UZid4RL2t1Ch/FycNm2v+wTxezASQ7V0tmVMa+dJHHS5auLM aiYKQzl1KCvJHoQ2RfL361vmzDtCuo0LC1u/A5q801pCqO0qqlEuQadteW61kfvPVbMYAvbsBOo xmK/oKToXbgLUM9lJusL3Km018lVLvHX81/TBCFZmk6MdDrxMZvwmpeDuVgb2cRVNVq7gmhQzeI tMFbrkBBWtE3/IcZ76YmtgoOb3rX3W63UYWhKxV9tbvXP4fQWUHDkIapHclb+dj8RRQi X-Google-Smtp-Source: AGHT+IGdyYGbeFuu2nlvHla+KhkT8Uoj/mPESblgy+MZuaPSQY+yDPD4sUS0iGpQPV7UwGI8tGb6/A== X-Received: by 2002:a17:903:41c3:b0:21f:ba77:c45e with SMTP id d9443c01a7336-221040d8192mr97323775ad.45.1739725285347; Sun, 16 Feb 2025 09:01:25 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:24 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Anatoly Burakov Subject: [PATCH v8 06/17] app/test: use unit test runner for malloc tests Date: Sun, 16 Feb 2025 08:53:05 -0800 Message-ID: <20250216170110.7230-7-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org There are several malloc tests and switching to the table driven unit test runner improves readability and makes adding new tests easier. Signed-off-by: Stephen Hemminger Acked-by: Anatoly Burakov --- app/test/test_malloc.c | 166 +++++++++++++++++------------------------ 1 file changed, 70 insertions(+), 96 deletions(-) diff --git a/app/test/test_malloc.c b/app/test/test_malloc.c index 02a7d8ef20..4acb827543 100644 --- a/app/test/test_malloc.c +++ b/app/test/test_malloc.c @@ -140,6 +140,24 @@ test_align_overlap_per_lcore(__rte_unused void *arg) return ret; } +static int +test_align_overlap(void) +{ + unsigned int lcore_id; + int ret = 0; + + RTE_LCORE_FOREACH_WORKER(lcore_id) { + rte_eal_remote_launch(test_align_overlap_per_lcore, NULL, lcore_id); + } + + RTE_LCORE_FOREACH_WORKER(lcore_id) { + if (rte_eal_wait_lcore(lcore_id) < 0) + ret = -1; + } + + return ret; +} + static int test_reordered_free_per_lcore(__rte_unused void *arg) { @@ -235,6 +253,23 @@ test_reordered_free_per_lcore(__rte_unused void *arg) return ret; } +static int +test_reordered_free(void) +{ + unsigned int lcore_id; + int ret = 0; + + RTE_LCORE_FOREACH_WORKER(lcore_id) { + rte_eal_remote_launch(test_reordered_free_per_lcore, NULL, lcore_id); + } + + RTE_LCORE_FOREACH_WORKER(lcore_id) { + if (rte_eal_wait_lcore(lcore_id) < 0) + ret = -1; + } + return ret; +} + /* test function inside the malloc lib*/ static int test_str_to_size(void) @@ -729,6 +764,23 @@ test_random_alloc_free(void *_ __rte_unused) return 0; } +static int +test_random(void) +{ + unsigned int lcore_id; + int ret = 0; + + RTE_LCORE_FOREACH_WORKER(lcore_id) { + rte_eal_remote_launch(test_random_alloc_free, NULL, lcore_id); + } + + RTE_LCORE_FOREACH_WORKER(lcore_id) { + if (rte_eal_wait_lcore(lcore_id) < 0) + ret = -1; + } + return ret; +} + #define err_return() do { \ printf("%s: %d - Error\n", __func__, __LINE__); \ goto err_return; \ @@ -988,105 +1040,27 @@ test_alloc_socket(void) return 0; } +static struct unit_test_suite test_suite = { + .suite_name = "Malloc test suite", + .unit_test_cases = { + TEST_CASE(test_str_to_size), + TEST_CASE(test_zero_aligned_alloc), + TEST_CASE(test_malloc_bad_params), + TEST_CASE(test_realloc), + TEST_CASE(test_align_overlap), + TEST_CASE(test_reordered_free), + TEST_CASE(test_random), + TEST_CASE(test_rte_malloc_validate), + TEST_CASE(test_alloc_socket), + TEST_CASE(test_multi_alloc_statistics), + TEST_CASES_END() + } +}; + static int test_malloc(void) { - unsigned lcore_id; - int ret = 0; - - if (test_str_to_size() < 0){ - printf("test_str_to_size() failed\n"); - return -1; - } - else printf("test_str_to_size() passed\n"); - - if (test_zero_aligned_alloc() < 0){ - printf("test_zero_aligned_alloc() failed\n"); - return -1; - } - else printf("test_zero_aligned_alloc() passed\n"); - - if (test_malloc_bad_params() < 0){ - printf("test_malloc_bad_params() failed\n"); - return -1; - } - else printf("test_malloc_bad_params() passed\n"); - - if (test_realloc() < 0){ - printf("test_realloc() failed\n"); - return -1; - } - else printf("test_realloc() passed\n"); - - /*----------------------------*/ - RTE_LCORE_FOREACH_WORKER(lcore_id) { - rte_eal_remote_launch(test_align_overlap_per_lcore, NULL, lcore_id); - } - - RTE_LCORE_FOREACH_WORKER(lcore_id) { - if (rte_eal_wait_lcore(lcore_id) < 0) - ret = -1; - } - if (ret < 0){ - printf("test_align_overlap_per_lcore() failed\n"); - return ret; - } - else printf("test_align_overlap_per_lcore() passed\n"); - - /*----------------------------*/ - RTE_LCORE_FOREACH_WORKER(lcore_id) { - rte_eal_remote_launch(test_reordered_free_per_lcore, NULL, lcore_id); - } - - RTE_LCORE_FOREACH_WORKER(lcore_id) { - if (rte_eal_wait_lcore(lcore_id) < 0) - ret = -1; - } - if (ret < 0){ - printf("test_reordered_free_per_lcore() failed\n"); - return ret; - } - else printf("test_reordered_free_per_lcore() passed\n"); - - /*----------------------------*/ - RTE_LCORE_FOREACH_WORKER(lcore_id) { - rte_eal_remote_launch(test_random_alloc_free, NULL, lcore_id); - } - - RTE_LCORE_FOREACH_WORKER(lcore_id) { - if (rte_eal_wait_lcore(lcore_id) < 0) - ret = -1; - } - if (ret < 0){ - printf("test_random_alloc_free() failed\n"); - return ret; - } - else printf("test_random_alloc_free() passed\n"); - - /*----------------------------*/ - ret = test_rte_malloc_validate(); - if (ret < 0){ - printf("test_rte_malloc_validate() failed\n"); - return ret; - } - else printf("test_rte_malloc_validate() passed\n"); - - ret = test_alloc_socket(); - if (ret < 0){ - printf("test_alloc_socket() failed\n"); - return ret; - } - else printf("test_alloc_socket() passed\n"); - - ret = test_multi_alloc_statistics(); - if (ret < 0) { - printf("test_multi_alloc_statistics() failed\n"); - return ret; - } - else - printf("test_multi_alloc_statistics() passed\n"); - - return 0; + return unit_test_suite_runner(&test_suite); } REGISTER_FAST_TEST(malloc_autotest, false, true, test_malloc); From patchwork Sun Feb 16 16:53:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151540 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 00F934623D; Sun, 16 Feb 2025 18:02:12 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 84E4940E49; Sun, 16 Feb 2025 18:01:32 +0100 (CET) Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) by mails.dpdk.org (Postfix) with ESMTP id E963040DD8 for ; Sun, 16 Feb 2025 18:01:26 +0100 (CET) Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-221057b6ac4so16768295ad.2 for ; Sun, 16 Feb 2025 09:01:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725286; x=1740330086; 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=jg2zjmdCfFG8ctBwsuR58cznWodpwBWybE2GC8aP5qM=; b=BOgD3OUTegl1cTuAvR9J727WxvgZwV67F2XxDFujlbbemDKriMpvEMtxiTSi/Oennd jQDnNxs65gMXimawSjR7PmzSW4CIqvAzrRZjfoLGeUFlF2Q0rNsIwCIZN6Ixrlka8iWK xR537hHgQVyOcrvzSyEKb1WaOiyseUv+XryfKfVyjpPhcnS7toxhE4YL6FclrSHoa9I9 KHD1nHr8MLm8jP/ABX3QyjfOZt5/OueY5vw9cNcG2DtSExIhYSQrftSsU0bmkRHauxEx bJkYkzM/F/BuZ8uB6XM0NrcA0kKZgc8tMRyEjzxDEqicmult9tiSHpcsO6Tmz7rVgNq1 /07w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725286; x=1740330086; 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=jg2zjmdCfFG8ctBwsuR58cznWodpwBWybE2GC8aP5qM=; b=BwI15K9CCwn/qfjgF9yUXlmgh2g+6p2m+Ol51pOj6HiIs3yvdNyjgm+FMnGliBBjnA y2aPZ5atgQJPX8XfmWPxZBdMzvFRyBA6xmF50exmaM+sKAv5likpyVH6WSYp7lx9wxSq p+hr2g83OvV8QMwIp9uBRRhW1SmGhNhJG2BRDhbPkJzJOnBxZA7MazK6nvoy0dpB4QVg +i8i5UkEfPTho4GFVVy7HLhVAsXkb1hm4kK/PKQJ78rF26Btk/gLWS0vqANFY81oQXSz wyTRkoOyedFOJLLin2uJ1Qdwoyy/oQ2YMflSLJeHe2eWH9d2p2lgwqTOJPr2TlAXXYxZ hLbw== X-Gm-Message-State: AOJu0YxQ8cQlag/qPAIQPxxZ1UIQPE19qcwNp3ODhT4ucZXKcWAEZp8H e/PR4qZRxYKpYVi/qBOO9zSkJMFtzs9Jh8nwIfyv2LuVEPbXZMnyGPbkDn/idKyRph/2TDqtrB7 m X-Gm-Gg: ASbGnctyt3gUJJMp74E80iACcEn6xku3xDqjGFmXZz2uxeboqROdZBxZKsrD9JwekXN WPdkZFmEOoR6h4xnbnaVgBsMefXG1CBsATn44dfWwXKvOHzpEZMbs9XIyRI4tTHIW6GtCDaH8IN uUQqH56lpewtPDAYuuTu3/sI4R9X5CJdjsI0BFRDUF+TPNVJzb3qKYzGldzunrHj9tgQFPZH6LZ zbqOcS2HSWvI8sE91WBzHWQeg+myTtCGfprVuZQRT42OXcJUOjJEu1+QHk+UpUHNenoxwWynJwr C/T8IYFzU5OTBejNPnn2xg3KsL9K6Z+Efrxbq2yL59H9J1iiVkCr1KKBwyGmQ4azFvE0 X-Google-Smtp-Source: AGHT+IEpWv53e1sZj3emvhlR/9tEsy2TTegnmJp1jJZcOKNIg9St0VvR1mZDH9K2TYs6OI91+vocxw== X-Received: by 2002:a17:903:3d0c:b0:220:d5a4:3ac with SMTP id d9443c01a7336-221040d7a6fmr100941195ad.45.1739725286179; Sun, 16 Feb 2025 09:01:26 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:25 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Anatoly Burakov Subject: [PATCH v8 07/17] app/test: add test for rte_free_sensitive Date: Sun, 16 Feb 2025 08:53:06 -0800 Message-ID: <20250216170110.7230-8-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Similar to test for rte_memset_explicit, use a worker thread to free and then check the result. Signed-off-by: Stephen Hemminger --- app/test/test_malloc.c | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/app/test/test_malloc.c b/app/test/test_malloc.c index 4acb827543..fae28ab92a 100644 --- a/app/test/test_malloc.c +++ b/app/test/test_malloc.c @@ -1040,6 +1040,57 @@ test_alloc_socket(void) return 0; } +static int +run_rte_free_sensitive(void *arg) +{ + rte_free_sensitive(arg); + return 0; +} + +/* Check that memory freed is zero now. + * Need to disable address sanitizer since use after free is intentional here. + */ +__rte_no_asan +static int +check_free_memory_is_zero(const char *data, size_t sz) +{ + for (unsigned int i = 0; i < sz; i++) + if (data[i] != 0) + return 0; + return 1; +} + +static int +test_free_sensitive(void) +{ +#define SENSITIVE_KEY_SIZE 128 + + if (rte_lcore_count() < 2) { + printf("Need multiple cores to run memzero explicit test.\n"); + return TEST_SKIPPED; + } + + unsigned int worker_lcore_id = rte_get_next_lcore(-1, 1, 0); + TEST_ASSERT(worker_lcore_id < RTE_MAX_LCORE, "get_next_lcore failed"); + + /* Allocate a buffer and fill with sensitive data */ + char *key = rte_zmalloc("dummy", SENSITIVE_KEY_SIZE, 0); + TEST_ASSERT(key != NULL, "rte_zmalloc failed"); + rte_strscpy(key, "Super secret key", SENSITIVE_KEY_SIZE); + + /* Pass that data to worker thread to free */ + int rc = rte_eal_remote_launch(run_rte_free_sensitive, key, worker_lcore_id); + TEST_ASSERT(rc == 0, "Worker thread launch failed"); + + /* Wait for worker */ + rte_eal_mp_wait_lcore(); + + TEST_ASSERT(check_free_memory_is_zero(key, SENSITIVE_KEY_SIZE), + "rte_free_sensitive data not zero"); + + return 0; +} + static struct unit_test_suite test_suite = { .suite_name = "Malloc test suite", .unit_test_cases = { @@ -1053,6 +1104,7 @@ static struct unit_test_suite test_suite = { TEST_CASE(test_rte_malloc_validate), TEST_CASE(test_alloc_socket), TEST_CASE(test_multi_alloc_statistics), + TEST_CASE(test_free_sensitive), TEST_CASES_END() } }; From patchwork Sun Feb 16 16:53:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151541 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 39C684623D; Sun, 16 Feb 2025 18:02:17 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C3F5840E4D; Sun, 16 Feb 2025 18:01:33 +0100 (CET) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by mails.dpdk.org (Postfix) with ESMTP id 0156340E2A for ; Sun, 16 Feb 2025 18:01:27 +0100 (CET) Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-220e83d65e5so51015145ad.1 for ; Sun, 16 Feb 2025 09:01:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725287; x=1740330087; 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=SPG1RZ9fQMg6hK525GE2IDjJ0Wo/k+Dqi9zz5mryuL0=; b=NQciNR38gibl9/+dvDzuOAYSAyNMGn6G3IOtgBh4r8pxiNa/wdbb4CJzKCWs3McRQQ HeuDBNaKME2CbpVk13fcn0ZzNioa1fMdc1VvJLRc8VO6Fi+YlrHsADT2NT1RyjnL5xKS bOLl30nbumTMhHkFq52ECt8psUU2U9jBlPVDUcVAED9ihPhqb6iuiaxF0cW5ZB30qDEM LxqQUurRDXD3fYR/uYvohAWuEdVZPX5nh6cmyMDD7KuaCFm+GqPjH7a1GJ0Fhg2+kvDg ZRt1iiDUdVdRAFH6ny9rMvV1+EAIJuQv5eyB/sSfXSIW8BIax9BAqVBPpZ/9dRKrz4Sa r2gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725287; x=1740330087; 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=SPG1RZ9fQMg6hK525GE2IDjJ0Wo/k+Dqi9zz5mryuL0=; b=G/aVKGTwZTznfpmTxYTxwipeJ9bK8ZQ/r5Qtw90bI8Qgw586r8L5jC8ssQpAwt1WPt Xf0bAKid5K6bRyAM88RXNo3zNz7ErHwgKtYRl/7YgW9uzFgeGNN53WF8MlFgmaYA0+P1 GpFk5qXBP4l31D4eZUNmq+8GxS2bym1rcgNmv/dKswAnobYATCHNIaigIn1AHVyn2Jnx 2Lxdugo7B20gg8HGVcpz13P52xusdjLMkigL1+QGUEXVGeEe813BBzZDSJ6vEMJfwG9s gh78CmGrgpjwRXbuX3aePHslcKhBW4nAS4jItXSN+Z9i2CHpXuWhBBZp4jDIfItY5QNZ tQwA== X-Gm-Message-State: AOJu0Yzg0yz07cISySyTNGGWGi9SRYUYo9Z+8yUBJBJ1UmyruApblq/K o+WTYw9V2Q2M0JhsmQ9dw6NDaEBKqkD3pPczqVIil5o3Ynq+hG9oXTgyctLBMUruU5ooNFE/COw c X-Gm-Gg: ASbGncu8mBdONQLODfAFwAJO5973CpkaZ2/GJMp3GnZSWvy06CVLacNp1znWJyxohfX X8RMlwx51PVeb1nMqbDxtWnSA5oTfvViM1sO1j69WF/uGeiqXvHYxEN9vNMTwsuOr7phsMPnpJd HH73nC/Nbw56RUBs3s/e/M9szI/MTWR2+2YKu9bXt8RB8lVf3wFNbWkVXsJ+pi+I0PH5OUSipZ6 DpIGUHrg9uJzGXeLjLGVWX+NLwEwGIxPhzAHLB2zGeHhgYFTPr7f67er6RjvtiklTF6Ru7qIVxC wQIXXHjhmOz3TNPJoOP1iJbelv6673kle81m7hYiYaALcp+Mpoy61/vxAHqMsVUuccuD X-Google-Smtp-Source: AGHT+IGQ70Um+GjcY0dmtiCo6uvcGJrk7/5+vQq6bG9MkaFAn7RCm4DIviFDaPW2uBZBFkcec8/E0w== X-Received: by 2002:a17:902:f547:b0:220:e991:480a with SMTP id d9443c01a7336-2210400f7bfmr103234135ad.15.1739725287104; Sun, 16 Feb 2025 09:01:27 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:26 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Nithin Dabilpuram , Kiran Kumar K , Sunil Kumar Kori , Satha Rao , Harman Kalra Subject: [PATCH v8 08/17] common/cnxk: remove unused variable Date: Sun, 16 Feb 2025 08:53:07 -0800 Message-ID: <20250216170110.7230-9-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org A couple places in this code were generating warnings from PVS studio about memset potentially being ignored. This is because the ipv6_buf was declared but never used. Signed-off-by: Stephen Hemminger --- drivers/common/cnxk/roc_npc_utils.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/common/cnxk/roc_npc_utils.c b/drivers/common/cnxk/roc_npc_utils.c index 75d3b0702c..0b32a148e2 100644 --- a/drivers/common/cnxk/roc_npc_utils.c +++ b/drivers/common/cnxk/roc_npc_utils.c @@ -454,11 +454,9 @@ npc_process_ipv6_field_hash_legacy(const struct roc_npc_flow_item_ipv6 *ipv6_spe struct npc_lid_lt_xtract_info *lid_lt_xinfo; uint8_t hash_field[ROC_IPV6_ADDR_LEN]; struct npc_xtract_info *xinfo; - struct roc_ipv6_hdr ipv6_buf; uint32_t hash = 0, mask; int intf, i, rc = 0; - memset(&ipv6_buf, 0, sizeof(ipv6_buf)); memset(hash_field, 0, sizeof(hash_field)); intf = pst->nix_intf; @@ -495,11 +493,9 @@ npc_process_ipv6_field_hash_o20k(const struct roc_npc_flow_item_ipv6 *ipv6_spec, union npc_kex_ldata_flags_cfg *lid_cfg; uint8_t hash_field[ROC_IPV6_ADDR_LEN]; struct npc_xtract_info *xinfo; - struct roc_ipv6_hdr ipv6_buf; uint32_t hash = 0, mask; int intf, i, rc = 0; - memset(&ipv6_buf, 0, sizeof(ipv6_buf)); memset(hash_field, 0, sizeof(hash_field)); intf = pst->nix_intf; From patchwork Sun Feb 16 16:53:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151542 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 330BB4623D; Sun, 16 Feb 2025 18:02:22 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 050F540E4C; Sun, 16 Feb 2025 18:01:35 +0100 (CET) Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by mails.dpdk.org (Postfix) with ESMTP id CF4FB40E32 for ; Sun, 16 Feb 2025 18:01:28 +0100 (CET) Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-221050f3f00so20580025ad.2 for ; Sun, 16 Feb 2025 09:01:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725288; x=1740330088; 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=ryB8gYuMivydFfpfOBP5OdqnuMeQySFS+zV15pplPDA=; b=uwh4UIIkCbPey1hXaBZTJCiM0QPSO1nCcSTcpPuNdm21iD8tMcYcb7xtfsGkHhqvmC FTT9m3msBCr+1OzGfyl3WKFuqMm07HiAZULXwJ5HZyB7bG6xfv4Mudi8bX4bdzZHqEn/ 0hlQl4JR44mPRQG5Y8BbYswRo3CqhLaao4fKpJ7Huq/xdB4mDAEIWL3Xoa1QQUBFBA1u PcMBbMVb14xTWO2CwEnYpVgR1rTxS7MD1Sk6G3//R3EetwAf4UUCFC6qEHGAo6CSDyAH S3T3SGGNDJNfY85qC3fmd1Zygx1GfMMPNJ/CUEMi+oo3y+eSYicixnCFOWH4qAsudQV3 dzSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725288; x=1740330088; 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=ryB8gYuMivydFfpfOBP5OdqnuMeQySFS+zV15pplPDA=; b=Sv94ecJFoNGW0zTKMtaN2fjoQ7EB4nNKtF/mIGMY5kEKY2etk5CKRmFY4Ie5uBSSDk Zip8H3asJ6p7EqLy++tbCscWJaKnfFVJeVy/JQqka4U1Px8bTW0ctXuK2cFAOY47kUpB DaKttSIgavsXa8dOHC4huVKfjgo9mss3z1jSz5YIhljzwumNdLiJXSigE8fTRrgxJ5yO PFMQcUDgvrUFrdyqaYPrLXaWQ/oAFqvluVGHoz/V7shyLz7JjkCVab+FO3VIdKC233L1 L7eU5UkdD3tYUY4tJ85yytizl+tNQ1xilm1vic5Q9jzXJLe+wvUpGRZQjhxCauS42MEW s0Ew== X-Gm-Message-State: AOJu0YxkA7Qvb+294vYjJ21oB0Hib/V5VoNgdTQK1q1lcjSwKbw1idW+ XYhxaOA/XfAZgjZEzo4fu0PE11kbMGPPnXpX8RRmce0IJkvZwZJsY9JAsL4GNWBCP9qZ2zMe2ri 9 X-Gm-Gg: ASbGncuR22ji44evNbTBe3TyTe3Ssg2gjAgZ8xDzZXkS2J2Z+fSmu830aiC6RjZWZF9 fAS32uwZTLfnAxAak68SJZxYNGXfSdQUkssoCgRXIDL+LcPoG+XvNlhTwoaJ/FwIQvgar472hpi 8sUqn2RzjegcQU+X3d2xlfDq/Zl+O29ebj8HfyduT901cpnGLT2HrUq3gp89UhyuR9yLnfIr4pS L8RgRNEyxcsgUluD2JZuU/ggbb99CocGpND6tLZKdaZZS7dmzjdTL2VbHJfA5If44ilpTKskDWD oKcpr9Qx9fKiyb8Jh1Ar3Lt94LkG9fRY5RPFt1ZoUSywRlbvh8V8Ld2GcUoiqdpcMPDG X-Google-Smtp-Source: AGHT+IFrjRUm5IchU9gdsL1mS/DXkzDZPKUTRRhzRNtEByLdKF46PT9RKh9OHLxs0OQW9EJRL94Y2Q== X-Received: by 2002:a17:902:e5d0:b0:220:c94b:83a7 with SMTP id d9443c01a7336-2210405cc72mr89036115ad.29.1739725288001; Sun, 16 Feb 2025 09:01:28 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:27 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Bruce Richardson , Kai Ji Subject: [PATCH v8 09/17] crypto/qat: force zero of keys Date: Sun, 16 Feb 2025 08:53:08 -0800 Message-ID: <20250216170110.7230-10-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Just doing memset() on keys is not enough, compiler can optimize it away. Use new rte_memzero_explicit() and rte_free_sensitive(). Signed-off-by: Stephen Hemminger Acked-by: Bruce Richardson --- drivers/crypto/qat/qat_sym_session.c | 33 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/drivers/crypto/qat/qat_sym_session.c b/drivers/crypto/qat/qat_sym_session.c index 9b26f8a89b..3564a33484 100644 --- a/drivers/crypto/qat/qat_sym_session.c +++ b/drivers/crypto/qat/qat_sym_session.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "qat_logs.h" #include "qat_sym_session.h" @@ -1621,7 +1622,7 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, if (AES_set_encrypt_key(auth_key, auth_keylen << 3, &enc_key) != 0) { - rte_free(in); + rte_free_sensitive(in); return -EFAULT; } @@ -1633,9 +1634,9 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, aes_cmac_key_derive(k0, k1); aes_cmac_key_derive(k1, k2); - memset(k0, 0, ICP_QAT_HW_AES_128_KEY_SZ); + rte_memzero_explicit(k0, ICP_QAT_HW_AES_128_KEY_SZ); *p_state_len = ICP_QAT_HW_AES_XCBC_MAC_STATE2_SZ; - rte_free(in); + rte_free_sensitive(in); goto out; } else { static uint8_t qat_aes_xcbc_key_seed[ @@ -1666,11 +1667,11 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, if (AES_set_encrypt_key(auth_key, auth_keylen << 3, &enc_key) != 0) { - rte_free(in - - (x * ICP_QAT_HW_AES_XCBC_MAC_KEY_SZ)); - memset(out - - (x * ICP_QAT_HW_AES_XCBC_MAC_KEY_SZ), - 0, ICP_QAT_HW_AES_XCBC_MAC_STATE2_SZ); + rte_free_sensitive(in - + (x * ICP_QAT_HW_AES_XCBC_MAC_KEY_SZ)); + rte_memzero_explicit(out - + (x * ICP_QAT_HW_AES_XCBC_MAC_KEY_SZ), + ICP_QAT_HW_AES_XCBC_MAC_STATE2_SZ); return -EFAULT; } AES_encrypt(in, out, &enc_key); @@ -1678,7 +1679,7 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, out += ICP_QAT_HW_AES_XCBC_MAC_KEY_SZ; } *p_state_len = ICP_QAT_HW_AES_XCBC_MAC_STATE2_SZ; - rte_free(in - x*ICP_QAT_HW_AES_XCBC_MAC_KEY_SZ); + rte_free_sensitive(in - x*ICP_QAT_HW_AES_XCBC_MAC_KEY_SZ); goto out; } @@ -1698,7 +1699,7 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, return -ENOMEM; } - memset(in, 0, ICP_QAT_HW_GALOIS_H_SZ); + rte_memzero_explicit(in, ICP_QAT_HW_GALOIS_H_SZ); if (AES_set_encrypt_key(auth_key, auth_keylen << 3, &enc_key) != 0) { return -EFAULT; @@ -1707,7 +1708,7 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, *p_state_len = ICP_QAT_HW_GALOIS_H_SZ + ICP_QAT_HW_GALOIS_LEN_A_SZ + ICP_QAT_HW_GALOIS_E_CTR0_SZ; - rte_free(in); + rte_free_sensitive(in); return 0; } @@ -1757,8 +1758,8 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, } /* don't leave data lying around */ - memset(ipad, 0, block_size); - memset(opad, 0, block_size); + rte_memzero_explicit(ipad, block_size); + rte_memzero_explicit(opad, block_size); out: return 0; } @@ -2006,8 +2007,8 @@ static int qat_sym_do_precomputes_ipsec_mb(enum icp_qat_hw_auth_algo hash_alg, out: /* don't leave data lying around */ - memset(ipad, 0, block_size); - memset(opad, 0, block_size); + rte_memzero_explicit(ipad, block_size); + rte_memzero_explicit(opad, block_size); free_mb_mgr(m); return ret; } @@ -3240,7 +3241,7 @@ qat_security_session_destroy(void *dev __rte_unused, if (s->mb_mgr) free_mb_mgr(s->mb_mgr); #endif - memset(s, 0, qat_sym_session_get_private_size(dev)); + rte_memzero_explicit(s, qat_sym_session_get_private_size(dev)); } return 0; From patchwork Sun Feb 16 16:53:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151543 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 883794623D; Sun, 16 Feb 2025 18:02:31 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B3A7840ED2; Sun, 16 Feb 2025 18:01:36 +0100 (CET) Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by mails.dpdk.org (Postfix) with ESMTP id E875A40E37 for ; Sun, 16 Feb 2025 18:01:29 +0100 (CET) Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-220e83d65e5so51015395ad.1 for ; Sun, 16 Feb 2025 09:01:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725289; x=1740330089; 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=c8mVx65OZgwlPD3YqCSP4AJR4DoGBjJVIPIjf98KaNw=; b=Rk9NXfxX9bshNuibx/07c+o1fV4mI97LUAsaj0Ee8Ln75m0kvZGrsNrqAhGg4Eib1m /TKw3SR6pozGqhCsAt3EdH9IsYs+oucBKDiJ2DOO014R0TttTziSZU48k1K9ZGCFACI8 YP1MTfJrj9bNomPnRakye6UThRMO08rNBbs24armVFJnjlWpsP2uc/B9pzCCbyctSPrN v3GDaFismx/cOUTVwi1kXEMY3SGp3zklAUiMlE5gNRXPBPt3csKTx1zGLRLftoqayPbb SWjC2sBdEWlZSLd+6xEmGsAf1tE2MKPtUTpI+sKfzEpRoXcRNwDCpO9nX4ZOTlUBI8ha BT4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725289; x=1740330089; 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=c8mVx65OZgwlPD3YqCSP4AJR4DoGBjJVIPIjf98KaNw=; b=ErOFat+yHkQwOiSHW9N5iko6SlwvwAR9e5g0rSDk/RnU40SZ3+1oA9H42HPonfVLFu +zVmX7K0Q/Za/n9zxn5CoMFt4UTf55ktslJeoKLI8J0GP2BJrZTf+jAO+J1fD8Vw3mWN sMW+kPkJt3omErU5JZPbAS9Vh0hRHzE257rovmajjk5s6+hnhyH0NkbG83ofXdIo88Bm mF1rRQyQ+p9ZEov3s7c2BRhfZbkiLhdKHtxtIF0rJhYyMt/fEEt3/12BtRFJ7iOYGL5x 2uTp1w+frChV3ys0Glkl22xZKnOHLnapbUs/uotOcTeqYtd+tQ5QvK/orgzPhJnNvOQc qwJA== X-Gm-Message-State: AOJu0YynAG689xPZK/2Uzg3tVgGNqKOueS0BRbKHd0aR/3YdVJRJ26ah UVrFPs0pfKHiP86gnk5zrMEjf1ww3nfxWagC9do2vg03yf6Vno5qoABER2O5biGeGs+ZpkqHJIK k X-Gm-Gg: ASbGncv9yiK7h1oNCr3j3IoXFEdwYrREJ2XqEZgIi1ldrNq64NLqLb1/596oKboL0zO 6DrCTZmU99CoeXAOM2rMJyTOoPvb2a6JoGu1bcp54cX9a4jjf1racQBVlQEOSyiB+b/cvAkk7Bu MyRktLqSFoMTY8PoY2lNVaxDIEfXkvL30hykHx8wqw/PJkoMiwdkpALZufiSkoMlmonJa1zjxCZ lR5pgFmd4H3e7XQv88s3cPU8oqXnbX1T0fE77M7rnLIm4smYwfTaDekuYMiUUe1JpX/TEBL3+Vq HC7NI4g9uQReCavSf+1zUdlIY41SLWrzd7TwzjHrLhy1AEfRdpK1NLdBw7MRV6lmCWvs X-Google-Smtp-Source: AGHT+IFdmOJwFsMuEc8aiwFbtI4nPUo6JodbZ9v1KZjETRRECBEiusMIGi4uBTOUHIx1C20ptWCIhg== X-Received: by 2002:a17:902:ecc7:b0:220:c2a8:6fbc with SMTP id d9443c01a7336-221040ac132mr86211975ad.34.1739725288972; Sun, 16 Feb 2025 09:01:28 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:28 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , stable@dpdk.org, Bruce Richardson , Kai Ji , Ciara Power , Fan Zhang Subject: [PATCH v8 10/17] crypto/qat: fix size calculation for memset Date: Sun, 16 Feb 2025 08:53:09 -0800 Message-ID: <20250216170110.7230-11-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The memset was always doing 0 bytes since size computed later. Link: https://pvs-studio.com/en/blog/posts/cpp/1179/ Fixes: 3a80d7fb2ecd ("crypto/qat: support SHA3 plain hash") Cc: stable@dpdk.org Signed-off-by: Stephen Hemminger Acked-by: Bruce Richardson --- drivers/crypto/qat/qat_sym_session.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/crypto/qat/qat_sym_session.c b/drivers/crypto/qat/qat_sym_session.c index 3564a33484..7836c95064 100644 --- a/drivers/crypto/qat/qat_sym_session.c +++ b/drivers/crypto/qat/qat_sym_session.c @@ -2347,7 +2347,7 @@ int qat_sym_cd_cipher_set(struct qat_sym_session *cdesc, return 0; } -int qat_sym_cd_auth_set(struct qat_sym_session *cdesc, +static int qat_sym_cd_auth_set(struct qat_sym_session *cdesc, const uint8_t *authkey, uint32_t authkeylen, uint32_t aad_length, @@ -2620,27 +2620,27 @@ int qat_sym_cd_auth_set(struct qat_sym_session *cdesc, break; case ICP_QAT_HW_AUTH_ALGO_SHA3_224: /* Plain SHA3-224 */ - memset(cdesc->cd_cur_ptr, 0, state1_size); state1_size = qat_hash_get_state1_size( cdesc->qat_hash_alg); + memset(cdesc->cd_cur_ptr, 0, state1_size); break; case ICP_QAT_HW_AUTH_ALGO_SHA3_256: /* Plain SHA3-256 */ - memset(cdesc->cd_cur_ptr, 0, state1_size); state1_size = qat_hash_get_state1_size( cdesc->qat_hash_alg); + memset(cdesc->cd_cur_ptr, 0, state1_size); break; case ICP_QAT_HW_AUTH_ALGO_SHA3_384: /* Plain SHA3-384 */ - memset(cdesc->cd_cur_ptr, 0, state1_size); state1_size = qat_hash_get_state1_size( cdesc->qat_hash_alg); + memset(cdesc->cd_cur_ptr, 0, state1_size); break; case ICP_QAT_HW_AUTH_ALGO_SHA3_512: /* Plain SHA3-512 */ - memset(cdesc->cd_cur_ptr, 0, state1_size); state1_size = qat_hash_get_state1_size( cdesc->qat_hash_alg); + memset(cdesc->cd_cur_ptr, 0, state1_size); break; case ICP_QAT_HW_AUTH_ALGO_AES_XCBC_MAC: state1_size = ICP_QAT_HW_AES_XCBC_MAC_STATE1_SZ; From patchwork Sun Feb 16 16:53:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151544 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5D4EA4623D; Sun, 16 Feb 2025 18:02:36 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BFE5E40ED9; Sun, 16 Feb 2025 18:01:37 +0100 (CET) Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by mails.dpdk.org (Postfix) with ESMTP id BD2B340E3E for ; Sun, 16 Feb 2025 18:01:30 +0100 (CET) Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2211cd4463cso8993645ad.2 for ; Sun, 16 Feb 2025 09:01:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725290; x=1740330090; 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=qhNKU7vZcxq5FB0scX4PLj+Qg9WKGbFWsm6xVFz3F8s=; b=f3q+1tBla7/GADgZf1BP2jn4yxSzaXjNJX4UEC8WP8uEDiEjohmhAsDLIz6n0N3+LP 4Jx6Vgk0sdP61v4Wvq2Ce0PUzx0kpQbLyTCj6u22sv2xTwQC6SfFTK3FWK7RCFgJ8LAk Bt77LmkiLa+i/fQ+xQLJSXYJarhLRRPcocMUmjBeL6B4iC5zDuakhP8ExlMdHJvCLGZb 6jF/weBafOep4dgM2eUfJAF7+i81AhsPYhmyTnDQ7d+8R9ytm4PMXEXKyea80Q31FOIe Btr0l8IoSOroLZ0Ib2+3eHmNIj3jEQh/kRmcB90O1JFBrPN/U76z1A9Wt982nVzzEsIW qqRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725290; x=1740330090; 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=qhNKU7vZcxq5FB0scX4PLj+Qg9WKGbFWsm6xVFz3F8s=; b=P4q0LFQ5v6/jdmEbyc8iK8pg7JVaOz85OdaWoSRJpO/pYwJBpZaBqLBfKZsRx/4WR8 f4ds8x73tqo8H0T/X1yqHTkP0nD4iMZQ/lYBz7JSjNf6uHV2k03o0yTg1aFjo5t4/6Jp y4zf16F5h/cUYU9OeyCTW81pWNnt6dUJYviGAEVlioIAMSAjzLAhoJ/pSLyEv49SaPPk AyQnSxWfRA4L+SFSRMk+GpW2TQfzsXOBgt3Q3nU639QZy5ym9SO+2nC0+Ig9a+wCvot/ i05LbHRkg5WYOB3HB4ctzkpsy8dUxCk6GWeesDKldEBrvNIbz6CFsKFjPm6Ec7uj6von MvTg== X-Gm-Message-State: AOJu0YyNQVerBMXJSnpX06mfmwtIOkqfyKy41CGL3LCnpYu2jO65JZQi S6/ybonLX+rfurgWhp48vXdBrq55SexuuoZybWP+3vC34QYXMea/6acpw8r+N3ZLkGkHRtLlFZR o X-Gm-Gg: ASbGnct2zhjn/DJujLBOEhNhtStuBk4tr826udf4IKfODPXmjB5th5GVAw6wWJdZOw5 2QbW6wlT7XWUzd/2oYyPyzQjcnWWAA5VZJCFCotJ6vqWteqvX+5P72f3BlG7g3RJxwT/RHrBYSG HA1pbhkiOc+JODbrrWcuT5qfalfuwddvyS+qY46BbZgIhLemo6CrOt68uTeiTNm27ixIfOFtmBa eWehxAFX7Ed1JHawrwZ+K2XJ/Uxx4klgytMVuOi7DsgpDBuNo/y+nAY3Fv+n4jYz7No6404ervu 7tqldlp3MqEezOUnBFtWNR47fK2hwUhzxQ1leOtszjzYcE19JxbpHXb6EEDXiP4FYv8T X-Google-Smtp-Source: AGHT+IGPycg8FBW6tHsyefN++7Yht48E1Y1LAzzROr03c9gNWaGJoieD8vHSKQ5nm433ngfahNi2dQ== X-Received: by 2002:a17:902:ce0d:b0:215:9894:5679 with SMTP id d9443c01a7336-22103c5f5e4mr116565245ad.0.1739725289962; Sun, 16 Feb 2025 09:01:29 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:29 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Bruce Richardson , Kai Ji Subject: [PATCH v8 11/17] crypto/qat: use secure free for keys Date: Sun, 16 Feb 2025 08:53:10 -0800 Message-ID: <20250216170110.7230-12-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Regular memset maybe removed by compiler if done before a free function. Use new rte_free_sensitive instead. Signed-off-by: Stephen Hemminger Acked-by: Bruce Richardson --- drivers/crypto/qat/qat_asym.c | 5 +---- drivers/crypto/qat/qat_sym_session.c | 8 ++++---- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/crypto/qat/qat_asym.c b/drivers/crypto/qat/qat_asym.c index f5b56b2f71..d8a1406819 100644 --- a/drivers/crypto/qat/qat_asym.c +++ b/drivers/crypto/qat/qat_asym.c @@ -102,10 +102,7 @@ static const struct rte_driver cryptodev_qat_asym_driver = { curve.p.data, curve.bytesize) #define PARAM_CLR(what) \ - do { \ - memset(what.data, 0, what.length); \ - rte_free(what.data); \ - } while (0) + rte_free_sensitive(what.data) static void request_init(struct icp_qat_fw_pke_request *qat_req) diff --git a/drivers/crypto/qat/qat_sym_session.c b/drivers/crypto/qat/qat_sym_session.c index 7836c95064..fd2cc94418 100644 --- a/drivers/crypto/qat/qat_sym_session.c +++ b/drivers/crypto/qat/qat_sym_session.c @@ -1739,8 +1739,8 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, /* do partial hash of ipad and copy to state1 */ if (partial_hash_compute(hash_alg, ipad, p_state_buf)) { - memset(ipad, 0, block_size); - memset(opad, 0, block_size); + rte_memzero_explicit(ipad, block_size); + rte_memzero_explicit(opad, block_size); QAT_LOG(ERR, "ipad precompute failed"); return -EFAULT; } @@ -1751,8 +1751,8 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, */ *p_state_len = qat_hash_get_state1_size(hash_alg); if (partial_hash_compute(hash_alg, opad, p_state_buf + *p_state_len)) { - memset(ipad, 0, block_size); - memset(opad, 0, block_size); + rte_memzero_explicit(ipad, block_size); + rte_memzero_explicit(opad, block_size); QAT_LOG(ERR, "opad precompute failed"); return -EFAULT; } From patchwork Sun Feb 16 16:53:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151545 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 791CF4623D; Sun, 16 Feb 2025 18:02:41 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E398D40ECF; Sun, 16 Feb 2025 18:01:38 +0100 (CET) Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) by mails.dpdk.org (Postfix) with ESMTP id 8CD8C40E32 for ; Sun, 16 Feb 2025 18:01:31 +0100 (CET) Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-220ca204d04so47161775ad.0 for ; Sun, 16 Feb 2025 09:01:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725291; x=1740330091; 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=4eCQHxeqtnmJwnbM+apidP+XqcqCydmDyWVcC/qwE90=; b=x5S56DOcnMK3sdKRW9k1eFzHsrkbqsWoLTzlYCQg1y3yfLtCjSAOGcKqbVvd3DfR/t FP3SMGGEm5PcvZcdMzqI9zvsyiXpdpPZGJ2Kw/iebd9QpYdpNzJRsq8KVzrcyBQSzzyl +eGGWH7Yvz8/rK7/ICt7p6Hq6KaLmLL2JvOsnWeM+aYqrHVra4hXUKehBauGEmHLyAS2 cAi7dTFpvEND66fsRIV5Z8JIcyF/sMAIcjSr5EFe37rigFKouBQNsfhzxWFAz4mtnV2H B9tpjDIaV1PO68iYyZfM2WXgQEPhd/2D8ML1xAVWA1bs80F+sSZG/PZ7GpM8hBKf60Tn W7Cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725291; x=1740330091; 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=4eCQHxeqtnmJwnbM+apidP+XqcqCydmDyWVcC/qwE90=; b=tqCDrxGm0GrxPwi4IN2i2ghVgeM2taziSUafDPL4r6GbV5eePplZCzLk1R5RljbhEc Da6a2CdJyynBCkBRAM9LLYFN+x1yRLUCfjR6rMx8y/rOvoxMbEbqZQQlRFqUnk1PereM Chcu6XSaD9HvF5PBxSDIyLOWmkHVEo5DixYQhrjYaA0Qf9hC0BXfm1fsEi8YiL8JinXo RfzDtLwAXE04vhSC5BLKOaEU53oNmijUIH1KpOCjN8Xf75/qnu9m/NDzULZPubQTtmCj GhZDr43U/PvEPPEcCQ/qYkZ31tL0gp4VmNxefbs1Pr/XrfjYQ3qn6q7s7Auj+akfdnlV 8p7g== X-Gm-Message-State: AOJu0Yye5bBW9CHb1u9Yyg7/c2IBjoAZovzBuRYpwBbPVhz/ZXJEOHmg xJ0ytrsCOp1ZXQcMHqkRZXyHAKvbPy2y2LlerDUbn3/3Y6d9eX0ONmGDPUr791Cu9mz52ntCQLM K X-Gm-Gg: ASbGncvJTIoAvQITL0wXBTqvNRpO0vcBBOE9MkWDcH91A5FTayhF856qVVzEqhscqI7 abh0tABfBZsF0bmfDgHYW5buAZsXz7XCWzQ4ucfH2ii3kmixR62pLctKjcbhNTPcKE+1H23gfz3 j3hF91smqwcMRftIZ+dX0VsIlRsAlzcx0TgEoiTP/sulxAkXAzTz0904DLdNpxu01kQRbC6iEJv 3jVglRPHMAsv/8hY6sdDO0FpSLR7gJJH1Jth/V0OU+BHaMYnJBN+fk5vJpSjY0s/6xm8pbSklPl 2Hr0BR+Pck1L2u8ujawnuUvwrxV9AEKBDSRNS5zw8lF0fwPq0ToOSxXZlJ4bxZEjuH1z X-Google-Smtp-Source: AGHT+IGpQpweQFwMyKIwt0jGSGYUysc5MitUailh1TgV9z0g3P+R3YfCTqWl+eSnPmUv6MQV3O+VRQ== X-Received: by 2002:a17:903:22c3:b0:220:ef79:aca9 with SMTP id d9443c01a7336-221040ac0cbmr97979795ad.53.1739725290798; Sun, 16 Feb 2025 09:01:30 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:30 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Chengwen Feng Subject: [PATCH v8 12/17] bus/uacce: remove memset before free Date: Sun, 16 Feb 2025 08:53:11 -0800 Message-ID: <20250216170110.7230-13-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Doing memset before free maybe removed by compiler, and is flagged by security scanning tools as potential problem. In this case the memset is unnecessary. Signed-off-by: Stephen Hemminger Acked-by: Chengwen Feng --- drivers/bus/uacce/uacce.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/bus/uacce/uacce.c b/drivers/bus/uacce/uacce.c index 9ca048122d..cc1e42d56a 100644 --- a/drivers/bus/uacce/uacce.c +++ b/drivers/bus/uacce/uacce.c @@ -454,7 +454,6 @@ uacce_cleanup(void) dev->device.driver = NULL; free: - memset(dev, 0, sizeof(*dev)); free(dev); } From patchwork Sun Feb 16 16:53:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151546 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D62B54623D; Sun, 16 Feb 2025 18:02:45 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E89F440EDF; Sun, 16 Feb 2025 18:01:39 +0100 (CET) Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by mails.dpdk.org (Postfix) with ESMTP id 6867B40E44 for ; Sun, 16 Feb 2025 18:01:32 +0100 (CET) Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-221206dbd7eso6875565ad.2 for ; Sun, 16 Feb 2025 09:01:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725291; x=1740330091; 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=AZmRfVHuNAu8WwJa8G2gVzrRUKoolZ9gQmZARtWp9Nw=; b=sivJlImJ6xg68O9gkfH8B8zEZJvNGynzm4XsD8bKY9fh3mqRYqmDjGV6J3nO2X6KQn TJqvYy1QEErQHXGKAj1CRbbPIzO9AHrKqVRymUwJNMUkX5yFHtvcSRhG7sZ7DF6QjT1C 3kCA10AG1Xbx/v/FUjitFVi92HFWNxz/N9OtlJJeSlR0f1A1HQcEx3wHtRM6SNe0YXEJ RhLvrOGoir8Ms7zdOKygKlPAMIJRlp1uYkveF+ZIn4OyYKWhmDlGuzUQ7X1/yCV22Oid LBUEjTTQO17yK9xmTBVJfiUI+0vvUsR0QNzDZ/ZHG0bmXAJSjxvMIZKMpsYkhoTCIOeI 6XHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725291; x=1740330091; 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=AZmRfVHuNAu8WwJa8G2gVzrRUKoolZ9gQmZARtWp9Nw=; b=JRDNxvMRvWLCF8e2/HvUzgW6xV4sNGXZ/48YPa0Kpue03K9hWk9EoFsRVdOkOszY3W n1pmK+Jwgs/s6h+NnJXLg8xGxvX6HzlwOvdiw2dP+GEcUFA5CEelRupiWK+jsIxXUhwL M1HcBILw43WrRC399qVfB/kjr8/FxHzXjcCM6ysMenvOBVbc/YKiV52A3vdA5uox7Qwo 5QEm7TnKKpNJ6Xt44tI/fMRp4eyJjsnnFTOJEVFgfz3t/3ya2xEAgz/f+Wr7QGJ81Wo/ HYjxB+fWU3Lb7VwA/shkG2+rLBNI2NT02vr9fybiONBHrgBLSNGjtcoKrimQ2l6+U42J zj3g== X-Gm-Message-State: AOJu0YxQBtjf8LznQ8b8D3g+OU046f7K2WiT5Ic23MP3rJSdpTvhhkqt HVLsQNbhKrsXUV7KzNpd+a8tS547pfPOVouL6648W9iDDVq4CyYH8z4KGkmEwNyVyPpyDrk7Mpd 1 X-Gm-Gg: ASbGncsdTgYKY6OY9yJGkl0gq73xpH14OYikyu1MtQEBBZKeWO1iWnEwkKlrdQhPWnu nKsDCMvdC2KRTeOmSZu+68G2+yf4rqxSOENmrvs/DeiG+Gt90g/bF0JiMo8799aSpuX1JVn++wC mcYjyvEQqo+pTjBmMQvCfB+njCfzqfXZu9UT12tFApITXuL9GHci8/T1F37Uf0cjkgZ0XF2NGBO UeylDnDP0KSpWlCCUOO7VK6foqawNUcHsh6rP80rOHVn0/iBUSfbDskU2HBjpxaiwILq8vUyQy2 7CJZGH8V2h/Tz+2K42raBta16AfoLhHeSWtgBN8PU6aRqbc4P86oNC+TW2YErcbulVu9 X-Google-Smtp-Source: AGHT+IFKzX4mSB9JDz2Z6d4E3BehXAsE3y+QWbYaLEMYVXk6GAyGHqPZGcRFX0+hV0zwUHog4mSeVg== X-Received: by 2002:a17:903:2cb:b0:216:3436:b85a with SMTP id d9443c01a7336-221040aa273mr106209535ad.52.1739725291643; Sun, 16 Feb 2025 09:01:31 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:31 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Bruce Richardson , Ashish Gupta , Fan Zhang Subject: [PATCH v8 13/17] compress/octeontx: remove unnecessary memset Date: Sun, 16 Feb 2025 08:53:12 -0800 Message-ID: <20250216170110.7230-14-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Calling memset before rte_free not necessary, and could be removed by the compiler. In this case, the data is not security sensitive so the memset can be removed. Some security scanning tools will flag this. Signed-off-by: Stephen Hemminger Acked-by: Bruce Richardson --- drivers/compress/octeontx/otx_zip.c | 1 - drivers/compress/octeontx/otx_zip_pmd.c | 2 -- 2 files changed, 3 deletions(-) diff --git a/drivers/compress/octeontx/otx_zip.c b/drivers/compress/octeontx/otx_zip.c index 11471dcbb4..331d2d9475 100644 --- a/drivers/compress/octeontx/otx_zip.c +++ b/drivers/compress/octeontx/otx_zip.c @@ -81,7 +81,6 @@ zipvf_q_term(struct zipvf_qp *qp) struct zip_vf *vf = qp->vf; if (cmdq->va != NULL) { - memset(cmdq->va, 0, ZIP_MAX_CMDQ_SIZE); rte_free(cmdq->va); } diff --git a/drivers/compress/octeontx/otx_zip_pmd.c b/drivers/compress/octeontx/otx_zip_pmd.c index c8f456b319..74e3e942ad 100644 --- a/drivers/compress/octeontx/otx_zip_pmd.c +++ b/drivers/compress/octeontx/otx_zip_pmd.c @@ -479,8 +479,6 @@ zip_pmd_stream_free(struct rte_compressdev *dev, void *stream) (void *)&(z_stream->bufs[0]), (MAX_BUFS_PER_STREAM * ZIP_BURST_SIZE)); - /* Zero out the whole structure */ - memset(stream, 0, sizeof(struct zip_stream)); rte_free(stream); return 0; From patchwork Sun Feb 16 16:53:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151547 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 126E04623D; Sun, 16 Feb 2025 18:02:52 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2CAA040EE5; Sun, 16 Feb 2025 18:01:41 +0100 (CET) Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by mails.dpdk.org (Postfix) with ESMTP id 4BAF340E41 for ; Sun, 16 Feb 2025 18:01:33 +0100 (CET) Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-22113560c57so15296015ad.2 for ; Sun, 16 Feb 2025 09:01:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725292; x=1740330092; 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=LjAuUKXvjXSz7R4l617xCu44Y8nhJHSq6U+SYUOW77Q=; b=e1D4if1awRQKBa1rGWO81BD7iJE/VaNaNdaDvj1v2HwQKbYmYSobgN6zLTehBPl/Ru +QCxkZGLlgjUx+C8wD7UxH8b1Hu/vhHmjOd0u4IQMLO8vSC4kFj85kHO9vOaCXCGNYmT oX6Yn0b2O24Rdb8FwaC2QjVSx3+xPRQNLiHmY1Ba2dOUOCeykzdMnr89i6jtL8PbtpDZ Cg+Wiih7XXdO4w9TbPeJ0p3zsM3TXcbdKJDgtnN9lEYaZ0RBaRj0+znWLvfKcAf0fHO8 Oj7LKz60WTG9y88ZT6PavuyCvq3ao0WerbGmIK4aaSPOK/s2xY1iHJyx6HElYfZ0Ly+l 161Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725292; x=1740330092; 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=LjAuUKXvjXSz7R4l617xCu44Y8nhJHSq6U+SYUOW77Q=; b=cpTDbSd76pEtOCTSu/PfDlyp2pqV9DT6ol0HJC99pxUkXyh3pRrX9hbbb7Jcay3O/z 7D42/Ft/MGQKAjMDPb2oIvVu5X29B31PkPGgZaVD0FZBJgnuPFjeMEIX6UowHnRwYyCG 6VBRf9umUQHlmlMHF4C29ehVkbM8tTC8Xd+Xx0hGyAvTLYZxl9fqieJgYEWapHogC316 B9QyQi/MjbbpAsjdOkB/5ehtqVy9KM9+UVE9lDtGbid19Cn7iOa3EfUa/Xkl7KSDztdq ZgrWwMXykewF0WHTE8hCkZF9Z93sBMkpX0UEBRCEU7JvlxoUqKOSjhnzUxbwcKdgR907 qsmQ== X-Gm-Message-State: AOJu0YxoClh/HJS2l1pVIcPs1mHBmhvnxBsl29As3RLcBErKKCt9K4o0 1WYohIzWIp8T4HuFlq1c2DZbzeWUBKGgJDyzfe9OzsA1sl+elE/zgx6gzYGz/T+tOjw+e9pwpVN H X-Gm-Gg: ASbGncuO0f8jooMjjuV+gV5sQgHRBzJekqaRjwkVQbZZ65OUD8MxRYgIG/JuGs//CPg lGe1/cBGjMrwDiiFRbS6IuHCkZ+xmyUcqae/N7GrkGQmdYeMVF6t6C+zEjxYIVBgQ6vY1d38Oc1 B2emtrcRn0abOWMI/GDg30uWP8ck++ppbTQCkY2Ij2897zg0/5Hk5izMhMvWbOAPXFTLaA5aiWW BgXXPbCkVvxjQv/HQvt4E74alx6P9OOkapxOPQ7UYrO2uz20VZpn77Y+OFuuTTZeQyXEwe6b7va Wyq/b3MJU2dOLKmffxHI3zU35REywVdi8G2nY32PsyyPXcSPQgkBPXdVPJZBU5FqTg8z X-Google-Smtp-Source: AGHT+IHx2DUcL1fiJekRZ6IG/S6IF8UONVh/SguZCPnhO5oCAaRuEFOi+Q+XMUQlKOUEsLk7rdUA8Q== X-Received: by 2002:a17:903:27ce:b0:21f:89e5:2712 with SMTP id d9443c01a7336-221040ab970mr77862665ad.39.1739725292535; Sun, 16 Feb 2025 09:01:32 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:32 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Bruce Richardson Subject: [PATCH v8 14/17] test: remove unneeded memset Date: Sun, 16 Feb 2025 08:53:13 -0800 Message-ID: <20250216170110.7230-15-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Since tmp is not used later in the function, this memset is unnecessary. Even though this is harmless, it causes tools that look for security issues around memset to flag this a bug. Signed-off-by: Stephen Hemminger Acked-by: Bruce Richardson --- app/test/test_cmdline_cirbuf.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/test/test_cmdline_cirbuf.c b/app/test/test_cmdline_cirbuf.c index f6361d49e9..37882b3779 100644 --- a/app/test/test_cmdline_cirbuf.c +++ b/app/test/test_cmdline_cirbuf.c @@ -279,8 +279,6 @@ test_cirbuf_string_add_del_reverse(void) printf("Error: buffer should have been empty!\n"); return -1; } - /* clear tmp buffer */ - memset(tmp, 0, sizeof(tmp)); /* * reinitialize circular buffer From patchwork Sun Feb 16 16:53:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151548 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A7CE44623D; Sun, 16 Feb 2025 18:02:56 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 228F340FDE; Sun, 16 Feb 2025 18:01:42 +0100 (CET) Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by mails.dpdk.org (Postfix) with ESMTP id 3FD0140E50 for ; Sun, 16 Feb 2025 18:01:34 +0100 (CET) Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-220d398bea9so49803335ad.3 for ; Sun, 16 Feb 2025 09:01:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725293; x=1740330093; 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=BWlABOBDjT+D93lC4xk3UAjMk4KNQQKjBPILflrvYnM=; b=q7T7amwcYCY/z8DdckZ4O2gG+xtrwuhyVXJNNVtMQoRsOzZhGuZ7QPR2elk6dwAKgP FFl48CG2J5mgwBKSqn3I5EkFtop7oiLmt58yGDpK8yV45RMGeYf0SJT+oj+1Xtpjklog pai0eBEzvmExYo9TvTCgSnPAQO7LqwviLK1Lela1hOfQw2UDLJWG0CyZDb6hPhmqtDy8 PgXpS0GWFB48JVA4iesxarfEvx9R7J6V2H8obCO4+GJ+R54ONu7CFQp9LyJjCQMqU3CB qcDIfOMYElh+GDW0+9RIXusG/dMXKU+8ICXA8h2IIsnrOpkkd8tqze3JDQEAknfK4FaY N6lA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725293; x=1740330093; 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=BWlABOBDjT+D93lC4xk3UAjMk4KNQQKjBPILflrvYnM=; b=PKxwMXKRNpuqZB3JL0QaIc6A2VcXF43Ofi/bqtFP7plEdAiLiCUB3WBwmVXtaKQXKj /D9brGR/+IoNLsC3I+U17uy8wF96wMvgASifTuOyDSE6iXbMPuk2TrN43xlEKxf0ujSD 2GJEQ5+leHw+EqdPA/3VDclqrw7eaaiWF3G5kOfRX2BpNfChNJRFoxFQ0zHpFgfr69+f dIgNgQvfmjf2hPZi+9fDO1UZPZ100/So+D9XUWtudVBRCqf68AwYOQigNZ+El1qE+L8s AIgX40P3jFhCLyHk0XdLlF2rHJoiTN9yEShkzlZmy7tmdAuF4Jmu8FKNlYg3pfOKoRj0 oZgw== X-Gm-Message-State: AOJu0Yx4DRs8cYipQqfrcXVtnhlDOdOlKCcmv5si2MVqBc3NyTdPddlB Ro+KT24S4po+eCvg5ne50IzLNRMN+rImsLba3WYi/3E2nbopB5DkMIOf5QptzKJ3i9eSoVwKaFW i X-Gm-Gg: ASbGncu1tw3Kt5YtqBSfBUU+H8MLS5nMK1hElzuJlDxM+Lfaj0CqYOtvaV+BsZObv5d ZrrrzZWFebpPmSOydkGeusslwy6jRfTOIfFfrlA2XAdNTC/Ys8mVlCJIx4pXqEei1FCdaR2VW9a o3NFNCEmm/JS9VzVbmcL+dW1XQ2caTavZfyYt/o/RHxRsQ4x7Sk4CyyuRsGrnKfPd+WWXvf0Ff8 6h/HmeS/1W2RSDp9idmqZ9G3YEIfSIhTtVUQ5NeKYuddVGxVijMGjYp1g0aMAZdI2GlAzhcSMQl k4FRaAC7hJ/58PfVlSKRcTBVWcCUQVZgYtuKrFAHZfPbmRTVJbpJJO0vju3F/WXgJr9c X-Google-Smtp-Source: AGHT+IH32INqkcGIffUWxZp4AJ+gZZSdORS+zb6PTK/fRlxxO34Pi4eIWwsKG5zMvKuKLl6PEwqWGw== X-Received: by 2002:a17:902:e88a:b0:220:bf1d:41e9 with SMTP id d9443c01a7336-2210405f21fmr105384865ad.23.1739725293463; Sun, 16 Feb 2025 09:01:33 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:33 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , stable@dpdk.org, Christian Koue Muf , Serhii Iliushyk , Ferruh Yigit Subject: [PATCH v8 15/17] net/ntnic: check result of malloc Date: Sun, 16 Feb 2025 08:53:14 -0800 Message-ID: <20250216170110.7230-16-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Need to check the result of malloc() before calling memset. This is only place in this driver that forgot, other code does check. Fixes: 0d9bca480e26 ("net/ntnic: add FPGA modules for initialization") cc: stable@dpdk.org Signed-off-by: Stephen Hemminger --- drivers/net/ntnic/nthw/nthw_rac.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ntnic/nthw/nthw_rac.c b/drivers/net/ntnic/nthw/nthw_rac.c index ca6aba6db2..f275e64da3 100644 --- a/drivers/net/ntnic/nthw/nthw_rac.c +++ b/drivers/net/ntnic/nthw/nthw_rac.c @@ -31,7 +31,9 @@ nthw_rac_t *nthw_rac_new(void) { nthw_rac_t *p = malloc(sizeof(nthw_rac_t)); - memset(p, 0, sizeof(nthw_rac_t)); + + if (p) + memset(p, 0, sizeof(nthw_rac_t)); return p; } From patchwork Sun Feb 16 16:53:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151549 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E941F4623D; Sun, 16 Feb 2025 18:03:04 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B34E0410E4; Sun, 16 Feb 2025 18:01:43 +0100 (CET) Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by mails.dpdk.org (Postfix) with ESMTP id 0FE0940E68 for ; Sun, 16 Feb 2025 18:01:36 +0100 (CET) Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-22128b7d587so4726405ad.3 for ; Sun, 16 Feb 2025 09:01:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725295; x=1740330095; 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=Im45Wreomm3zRQ/zODQEb4h64DQAwYWmd5YzkwMj5Sc=; b=qQHlkBaWxiEkF6ke5LOcJMhPwYbJ7lCESp3o11x42yRJTY6v013dGtFkLzQlT1Xp1P ZFenGTzAb6RrKBirYlF2wSbwWsfyGpYj8+UDIyqRpAdxPNY0qZ891Orua5n+67w8d7Zs 2jf3IyedyECia8TKyI6EM80exC6iXvuod0+TAmtG4TRV2ggf7jwtfHgjuBvNNGBLT0Xn gPWdOz9ctEhek8L0VW+cPAx0uWMwGI+WXOELtUxPJzabI/jaicQj+zrtudvhHE75a9gk Ycg3wzjCyj2+ZntKpG0G32ePWqR29huElySkEEFkhQPCIuvOyKkm4KGobi0I1w5y9c0J kLhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725295; x=1740330095; 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=Im45Wreomm3zRQ/zODQEb4h64DQAwYWmd5YzkwMj5Sc=; b=l9bjvftI8Jrzghdc8QVanD0sSCDV4uPaEGTOX7HAwmPk2eOFS1MWd1AJe8rwMyp4BX ILf3k1K9JIzrXjR85Z+yM26Eo3l6/yO/jTssj/gZHwHpugYxHfjfdROj+KMeIw+OgklT QM62DLmTgcsDEhliKueqKiWRVOCiyFrCRxY+EWiEkyr4dU4Z3uIVVTo4hGMJCmTjCMQ1 foVERnRmWYNTIXrNyr8WkIE//1mf4cOA4TVb+y6aPYZdkKq04jb34Oo1Hd+axVgUon3F dtgKcY/+I4PJJx8af2Ec8NDHH/bRkhHGFNNGoxfpcub6HUwP2RKC9Wmp8Z7tUgTxTssI OvIA== X-Gm-Message-State: AOJu0YzB9XOl0PWMC2Fg31oI5i8AHPifCvU2CFHRnSU8ur5LlZGfqvag 2JFKlMIXgGOQzgcVqxaodGioy1u1k6rBOCv1vxut8v8JuN2jYWENBhxz8cpasT0QcH+bijiES8x N X-Gm-Gg: ASbGncvU4Xjr5plJn2Dusarj6SVb1tKmvHnSoDl9ZrkUp2gIUslfFocSB3bSdppYN7q XHVe7C1RfvjJbxdRuKe7EwcimWcSbsmrwA4kNdAsO7s2Vwcri/SscBw+lZiOefOa8gcPUWW7Cjp XqbvXqKo3ttivepyvKzKVu6/w2h2zQ6bzoxjmzdKMquWLwRkaXkDU5O2Ibin23Pun7n17Q0Kj4c bjGCz/cO0FpHtUG1rM6nOD3R/Zvuth3EHlKnf0Pkxh7SH4kHKd4dbpfoB7UrMLbjj6WaQRS7O0F lZlwV52hGvLvvOT1pcjG6iOZlBnL+cLQjTFb4LnUDmQ4YQFAZp7+0U0LkNVidDYArBaw X-Google-Smtp-Source: AGHT+IEfSL/5z+54xUPLrF9u3FdFf5NUHG5rEsuMCbailIN/pkFRBkRuhOcjgwHGmSCTZqRDVQ8wKg== X-Received: by 2002:a17:903:2b08:b0:216:4883:fb43 with SMTP id d9443c01a7336-221040ab99cmr110430405ad.32.1739725294424; Sun, 16 Feb 2025 09:01:34 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:34 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Christian Koue Muf , Serhii Iliushyk Subject: [PATCH v8 16/17] net/ntnic: remove unnecessary memset Date: Sun, 16 Feb 2025 08:53:15 -0800 Message-ID: <20250216170110.7230-17-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Calling memset before free() has no effect and will be flagged by security parsing tools as a potential bug. None of these data structures have sensitive information. Signed-off-by: Stephen Hemminger --- drivers/net/ntnic/nthw/core/nthw_hif.c | 5 +---- drivers/net/ntnic/nthw/core/nthw_iic.c | 5 +---- drivers/net/ntnic/nthw/core/nthw_pcie3.c | 5 +---- drivers/net/ntnic/nthw/core/nthw_rpf.c | 5 +---- drivers/net/ntnic/nthw/core/nthw_sdc.c | 5 +---- drivers/net/ntnic/nthw/core/nthw_si5340.c | 5 +---- drivers/net/ntnic/nthw/flow_filter/flow_nthw_cat.c | 5 +---- drivers/net/ntnic/nthw/flow_filter/flow_nthw_csu.c | 5 +---- drivers/net/ntnic/nthw/flow_filter/flow_nthw_flm.c | 5 +---- drivers/net/ntnic/nthw/flow_filter/flow_nthw_hfu.c | 5 +---- drivers/net/ntnic/nthw/flow_filter/flow_nthw_hsh.c | 5 +---- drivers/net/ntnic/nthw/flow_filter/flow_nthw_info.c | 5 +---- drivers/net/ntnic/nthw/flow_filter/flow_nthw_km.c | 5 +---- drivers/net/ntnic/nthw/flow_filter/flow_nthw_pdb.c | 5 +---- drivers/net/ntnic/nthw/flow_filter/flow_nthw_qsl.c | 5 +---- drivers/net/ntnic/nthw/flow_filter/flow_nthw_rpp_lr.c | 5 +---- drivers/net/ntnic/nthw/flow_filter/flow_nthw_slc_lr.c | 5 +---- drivers/net/ntnic/nthw/flow_filter/flow_nthw_tx_cpy.c | 1 - drivers/net/ntnic/nthw/flow_filter/flow_nthw_tx_ins.c | 5 +---- drivers/net/ntnic/nthw/flow_filter/flow_nthw_tx_rpl.c | 5 +---- drivers/net/ntnic/nthw/model/nthw_fpga_model.c | 1 - 21 files changed, 19 insertions(+), 78 deletions(-) diff --git a/drivers/net/ntnic/nthw/core/nthw_hif.c b/drivers/net/ntnic/nthw/core/nthw_hif.c index 9f699e4f94..d702257d76 100644 --- a/drivers/net/ntnic/nthw/core/nthw_hif.c +++ b/drivers/net/ntnic/nthw/core/nthw_hif.c @@ -23,10 +23,7 @@ nthw_hif_t *nthw_hif_new(void) void nthw_hif_delete(nthw_hif_t *p) { - if (p) { - memset(p, 0, sizeof(nthw_hif_t)); - free(p); - } + free(p); } int nthw_hif_init(nthw_hif_t *p, nthw_fpga_t *p_fpga, int n_instance) diff --git a/drivers/net/ntnic/nthw/core/nthw_iic.c b/drivers/net/ntnic/nthw/core/nthw_iic.c index 269754c24a..a98ec659c4 100644 --- a/drivers/net/ntnic/nthw/core/nthw_iic.c +++ b/drivers/net/ntnic/nthw/core/nthw_iic.c @@ -253,10 +253,7 @@ int nthw_iic_init(nthw_iic_t *p, nthw_fpga_t *p_fpga, int n_iic_instance, void nthw_iic_delete(nthw_iic_t *p) { - if (p) { - memset(p, 0, sizeof(nthw_iic_t)); - free(p); - } + free(p); } int nthw_iic_set_retry_params(nthw_iic_t *p, const int n_poll_delay, const int n_bus_ready_retry, diff --git a/drivers/net/ntnic/nthw/core/nthw_pcie3.c b/drivers/net/ntnic/nthw/core/nthw_pcie3.c index 5997ebb419..a5833e166c 100644 --- a/drivers/net/ntnic/nthw/core/nthw_pcie3.c +++ b/drivers/net/ntnic/nthw/core/nthw_pcie3.c @@ -24,10 +24,7 @@ nthw_pcie3_t *nthw_pcie3_new(void) void nthw_pcie3_delete(nthw_pcie3_t *p) { - if (p) { - memset(p, 0, sizeof(nthw_pcie3_t)); - free(p); - } + free(p); } int nthw_pcie3_init(nthw_pcie3_t *p, nthw_fpga_t *p_fpga, int n_instance) diff --git a/drivers/net/ntnic/nthw/core/nthw_rpf.c b/drivers/net/ntnic/nthw/core/nthw_rpf.c index 1ed4d7b4e0..d5c19e312b 100644 --- a/drivers/net/ntnic/nthw/core/nthw_rpf.c +++ b/drivers/net/ntnic/nthw/core/nthw_rpf.c @@ -22,10 +22,7 @@ nthw_rpf_t *nthw_rpf_new(void) void nthw_rpf_delete(nthw_rpf_t *p) { - if (p) { - memset(p, 0, sizeof(nthw_rpf_t)); - free(p); - } + free(p); } int nthw_rpf_init(nthw_rpf_t *p, nthw_fpga_t *p_fpga, int n_instance) diff --git a/drivers/net/ntnic/nthw/core/nthw_sdc.c b/drivers/net/ntnic/nthw/core/nthw_sdc.c index fc73e6957c..e32d87b967 100644 --- a/drivers/net/ntnic/nthw/core/nthw_sdc.c +++ b/drivers/net/ntnic/nthw/core/nthw_sdc.c @@ -22,10 +22,7 @@ nthw_sdc_t *nthw_sdc_new(void) void nthw_sdc_delete(nthw_sdc_t *p) { - if (p) { - memset(p, 0, sizeof(nthw_sdc_t)); - free(p); - } + free(p); } int nthw_sdc_init(nthw_sdc_t *p, nthw_fpga_t *p_fpga, int n_instance) diff --git a/drivers/net/ntnic/nthw/core/nthw_si5340.c b/drivers/net/ntnic/nthw/core/nthw_si5340.c index 05cadc0bf4..ceaa58e0f7 100644 --- a/drivers/net/ntnic/nthw/core/nthw_si5340.c +++ b/drivers/net/ntnic/nthw/core/nthw_si5340.c @@ -44,10 +44,7 @@ int nthw_si5340_init(nthw_si5340_t *p, nthw_iic_t *p_nthw_iic, uint8_t n_iic_add void nthw_si5340_delete(nthw_si5340_t *p) { - if (p) { - memset(p, 0, sizeof(nthw_si5340_t)); - free(p); - } + free(p); } /* diff --git a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_cat.c b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_cat.c index d3213593e1..ff316065f3 100644 --- a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_cat.c +++ b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_cat.c @@ -25,10 +25,7 @@ struct cat_nthw *cat_nthw_new(void) void cat_nthw_delete(struct cat_nthw *p) { - if (p) { - (void)memset(p, 0, sizeof(*p)); - free(p); - } + free(p); } void cat_nthw_set_debug_mode(struct cat_nthw *p, unsigned int n_debug_mode) diff --git a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_csu.c b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_csu.c index c1b73179a8..ddb11edf7c 100644 --- a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_csu.c +++ b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_csu.c @@ -29,10 +29,7 @@ struct csu_nthw *csu_nthw_new(void) void csu_nthw_delete(struct csu_nthw *p) { - if (p) { - (void)memset(p, 0, sizeof(*p)); - free(p); - } + free(p); } int csu_nthw_init(struct csu_nthw *p, nthw_fpga_t *p_fpga, int n_instance) diff --git a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_flm.c b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_flm.c index 8855978349..0b2f97ff01 100644 --- a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_flm.c +++ b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_flm.c @@ -26,10 +26,7 @@ struct flm_nthw *flm_nthw_new(void) void flm_nthw_delete(struct flm_nthw *p) { - if (p) { - (void)memset(p, 0, sizeof(*p)); - free(p); - } + free(p); } void flm_nthw_set_debug_mode(struct flm_nthw *p, unsigned int n_debug_mode) diff --git a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_hfu.c b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_hfu.c index 4a8b17101d..3170c363dc 100644 --- a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_hfu.c +++ b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_hfu.c @@ -29,10 +29,7 @@ struct hfu_nthw *hfu_nthw_new(void) void hfu_nthw_delete(struct hfu_nthw *p) { - if (p) { - (void)memset(p, 0, sizeof(*p)); - free(p); - } + free(p); } int hfu_nthw_init(struct hfu_nthw *p, nthw_fpga_t *p_fpga, int n_instance) diff --git a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_hsh.c b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_hsh.c index 80ead2729a..17381ddea6 100644 --- a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_hsh.c +++ b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_hsh.c @@ -30,10 +30,7 @@ struct hsh_nthw *hsh_nthw_new(void) void hsh_nthw_delete(struct hsh_nthw *p) { - if (p) { - (void)memset(p, 0, sizeof(*p)); - free(p); - } + free(p); } int hsh_nthw_init(struct hsh_nthw *p, nthw_fpga_t *p_fpga, int n_instance) diff --git a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_info.c b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_info.c index 8e0b24dd9a..7a17d36f6d 100644 --- a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_info.c +++ b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_info.c @@ -30,10 +30,7 @@ struct info_nthw *info_nthw_new(void) void info_nthw_delete(struct info_nthw *p) { - if (p) { - (void)memset(p, 0, sizeof(*p)); - free(p); - } + free(p); } int info_nthw_init(struct info_nthw *p, nthw_fpga_t *p_fpga, int n_instance) diff --git a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_km.c b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_km.c index edc8f58759..88f3900caf 100644 --- a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_km.c +++ b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_km.c @@ -39,10 +39,7 @@ struct km_nthw *km_nthw_new(void) void km_nthw_delete(struct km_nthw *p) { - if (p) { - (void)memset(p, 0, sizeof(*p)); - free(p); - } + free(p); } int km_nthw_init(struct km_nthw *p, nthw_fpga_t *p_fpga, int n_instance) diff --git a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_pdb.c b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_pdb.c index 4a9713965b..b0b3f41027 100644 --- a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_pdb.c +++ b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_pdb.c @@ -30,10 +30,7 @@ struct pdb_nthw *pdb_nthw_new(void) void pdb_nthw_delete(struct pdb_nthw *p) { - if (p) { - (void)memset(p, 0, sizeof(*p)); - free(p); - } + free(p); } int pdb_nthw_init(struct pdb_nthw *p, nthw_fpga_t *p_fpga, int n_instance) diff --git a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_qsl.c b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_qsl.c index c887fe25e2..9b1dddb3a8 100644 --- a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_qsl.c +++ b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_qsl.c @@ -30,10 +30,7 @@ struct qsl_nthw *qsl_nthw_new(void) void qsl_nthw_delete(struct qsl_nthw *p) { - if (p) { - (void)memset(p, 0, sizeof(*p)); - free(p); - } + free(p); } int qsl_nthw_init(struct qsl_nthw *p, nthw_fpga_t *p_fpga, int n_instance) diff --git a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_rpp_lr.c b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_rpp_lr.c index e69a1ca823..3b7380b52f 100644 --- a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_rpp_lr.c +++ b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_rpp_lr.c @@ -29,10 +29,7 @@ struct rpp_lr_nthw *rpp_lr_nthw_new(void) void rpp_lr_nthw_delete(struct rpp_lr_nthw *p) { - if (p) { - (void)memset(p, 0, sizeof(*p)); - free(p); - } + free(p); } int rpp_lr_nthw_init(struct rpp_lr_nthw *p, nthw_fpga_t *p_fpga, int n_instance) diff --git a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_slc_lr.c b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_slc_lr.c index e062a700eb..9083455051 100644 --- a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_slc_lr.c +++ b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_slc_lr.c @@ -30,10 +30,7 @@ struct slc_lr_nthw *slc_lr_nthw_new(void) void slc_lr_nthw_delete(struct slc_lr_nthw *p) { - if (p) { - (void)memset(p, 0, sizeof(*p)); - free(p); - } + free(p); } int slc_lr_nthw_init(struct slc_lr_nthw *p, nthw_fpga_t *p_fpga, int n_instance) diff --git a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_tx_cpy.c b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_tx_cpy.c index ee85a1c61b..c0e26f9186 100644 --- a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_tx_cpy.c +++ b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_tx_cpy.c @@ -31,7 +31,6 @@ void tx_cpy_nthw_delete(struct tx_cpy_nthw *p) { if (p) { free(p->m_writers); - (void)memset(p, 0, sizeof(*p)); free(p); } } diff --git a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_tx_ins.c b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_tx_ins.c index 47af44945f..40581c51ca 100644 --- a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_tx_ins.c +++ b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_tx_ins.c @@ -29,10 +29,7 @@ struct tx_ins_nthw *tx_ins_nthw_new(void) void tx_ins_nthw_delete(struct tx_ins_nthw *p) { - if (p) { - (void)memset(p, 0, sizeof(*p)); - free(p); - } + free(p); } int tx_ins_nthw_init(struct tx_ins_nthw *p, nthw_fpga_t *p_fpga, int n_instance) diff --git a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_tx_rpl.c b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_tx_rpl.c index c40857db0f..3786089326 100644 --- a/drivers/net/ntnic/nthw/flow_filter/flow_nthw_tx_rpl.c +++ b/drivers/net/ntnic/nthw/flow_filter/flow_nthw_tx_rpl.c @@ -29,10 +29,7 @@ struct tx_rpl_nthw *tx_rpl_nthw_new(void) void tx_rpl_nthw_delete(struct tx_rpl_nthw *p) { - if (p) { - (void)memset(p, 0, sizeof(*p)); - free(p); - } + free(p); } int tx_rpl_nthw_init(struct tx_rpl_nthw *p, nthw_fpga_t *p_fpga, int n_instance) diff --git a/drivers/net/ntnic/nthw/model/nthw_fpga_model.c b/drivers/net/ntnic/nthw/model/nthw_fpga_model.c index 9eaaeb550d..0fb525d34f 100644 --- a/drivers/net/ntnic/nthw/model/nthw_fpga_model.c +++ b/drivers/net/ntnic/nthw/model/nthw_fpga_model.c @@ -183,7 +183,6 @@ nthw_fpga_mgr_t *nthw_fpga_mgr_new(void) void nthw_fpga_mgr_delete(nthw_fpga_mgr_t *p) { - memset(p, 0, sizeof(nthw_fpga_mgr_t)); free(p); } From patchwork Sun Feb 16 16:53:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 151550 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0F9CA4623D; Sun, 16 Feb 2025 18:03:10 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D3CB7410ED; Sun, 16 Feb 2025 18:01:44 +0100 (CET) Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by mails.dpdk.org (Postfix) with ESMTP id 929D940ED4 for ; Sun, 16 Feb 2025 18:01:37 +0100 (CET) Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2211acda7f6so11895185ad.3 for ; Sun, 16 Feb 2025 09:01:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1739725297; x=1740330097; 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=4njUr5dkOHDc4bLiHbc9hRxitSjOZs14bwKzJu4y3NM=; b=vjN59/LMg3FmIIf4f69xuJzqg44QeU8ePYBH2nZiMdK//KTVbiClF7IfAgO15f7xah XC5lUVxeqiFww3+RyquWJtimubvNT/Dz7LYxOHniYTY2dp79MfuHmH3dfGOklAVTNjHJ 31qDepkXCE4gxwmcEtaFuC8AqEghIj5oLuJNBVdOWdOqjiKNS8hV8AZD1ORWekFPgK/p Cf2CTG0Lo0KbYcNFp9v0cFql+scARahdY+ri9FLQiv8r9HvowFjTrjbl/FBCjp4altQq CQng/e3NloktvCVTCR9Lu1OhU4gk3S+K5Z3SesnYHlCLLuFUMXTAJ0xsLHQhHWmp7QAj 9VWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739725297; x=1740330097; 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=4njUr5dkOHDc4bLiHbc9hRxitSjOZs14bwKzJu4y3NM=; b=CkEjsg/UCVwHP5d+cU0q8a0NQDD+5yzcKVPwVwt7+tVa6JcLu4ICGL0B6HT6Hl6F8N yUHkVsJGVy5bCKfZAiYGZ+jPz+xmUNhslWDykwDQhXatlixZ6ikf8NemwE4M+xIp+Vlc nazBSS3V7+f1fH1f4RUDspLZnBOxEBwop3CKRUU/atmhrCm8O9AA0yHfLbdRELhqHeHt W4xBcViqw/zKv3gx6PSveZtk6O/M1YLOmn8588AQOVIHDau+b0C6b448SWxvvnFYwtDp f6NDPXSh/s1T7JdyyBiUUHsTPZfs5wfKJmkIgFd+jBuDg41L2kL5cDSQF3FgLSF8z6UU qPQQ== X-Gm-Message-State: AOJu0YzRqRozy9V9EBo4fBkdApRma7mfZMeLv1smjOQ96TGgkzlbrQxS CYfOwraL1SIC9PU5itjTueGSgiwBIz4r2DSR/zTsMwZJiAe+TRVX8mOH3vMERM9Is57jHUI3e+3 P X-Gm-Gg: ASbGnct3x1Ft6TGY0p2gXT5IF/HuKs1OAF/ywY964U5I5fU64rhcDAP0i8W+v96eSsj alNVvOrLCmf6ZMBLV4sO/DBPTEKEbTZwnZG0cLmlfHZNXp1Bk19kKbFg+KbU+H9eSjJE4MH4AUE P7vODEy/hS5kp51KVqtLoBIxVcOeeKOsMj1qCBWCdi5r/XbjkXQNnP0TeFsJYasvt2L0uQSyeFN UW71qOM3m5A2mDkV0NxOI5+pG+64+2ZV/Awmc/STxzqX5Vcp0T9TF51UMMAjySzcQolI3T/OnFP v6ock+EX8Ftb3aZFizpZh3qTmdqm4Cc1KMXqWs+B/8i2hJm8gVYCfPhf+/17p6J1bkkJ X-Google-Smtp-Source: AGHT+IHi/FOhm+bAoEH2HaytNHXrOoo6TevM3FODnQ/gliYf+tqlHnBuG7gXZTpGS6ZHnTjzNzCdzA== X-Received: by 2002:a17:902:f547:b0:21f:53ce:b2e2 with SMTP id d9443c01a7336-2210409af9fmr89704245ad.45.1739725295221; Sun, 16 Feb 2025 09:01:35 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2211eafd20dsm11196805ad.182.2025.02.16.09.01.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 09:01:34 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger Subject: [PATCH v8 17/17] devtools/cocci: add script to find problematic memset Date: Sun, 16 Feb 2025 08:53:16 -0800 Message-ID: <20250216170110.7230-18-stephen@networkplumber.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250216170110.7230-1-stephen@networkplumber.org> References: <20241114011129.451243-1-stephen@networkplumber.org> <20250216170110.7230-1-stephen@networkplumber.org> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Script that converts memset before free into rte_memset_sensitive and memset before rte_free into rte_free_sensitive Signed-off-by: Stephen Hemminger --- devtools/cocci/memset_free.cocci | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 devtools/cocci/memset_free.cocci diff --git a/devtools/cocci/memset_free.cocci b/devtools/cocci/memset_free.cocci new file mode 100644 index 0000000000..96334dc8c0 --- /dev/null +++ b/devtools/cocci/memset_free.cocci @@ -0,0 +1,9 @@ +// Replace calls to memset before free +@@ +expression E, size; +@@ +( +- memset(E, 0, size); +- rte_free(E); ++ rte_free_sensitive(E); +)