From patchwork Fri Feb 21 21:52:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 13986353 Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C6D0B2566CB; Fri, 21 Feb 2025 21:53:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740174782; cv=none; b=M/7MkX1hZmqOv9Q3DWtUt5gEDEBl613B6yWwwW6aPtP4Bdw7wUTtj5QPPM8hLwqO2L9FrgQ+3WmGfJkOVtwKmghppyB2QTbWhRkBGREBAOqYOzepYZuNl/VlEiaXc80wKK2NffZ/n4Rfw0ZVH4fYJOc637nT5SUxqlsOxBUCb/E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740174782; c=relaxed/simple; bh=hlmQngDh17Zs7kpd6oJl7Fm7cf+hFOFc8gYQDe1+8sA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Rq4kfy05ioRYtcrj5ryakv7R6GPKS+7MaV0tTuk9/Gj3AJsoczfRWf7J9vSG3BwW0aEDnY4uP7HpjkLBd0wHFwlP5oab2KRN3MgpWxwbie2PiDkIIasup7NMeNn1pGwUXVVDtKzlSYhqrWQ9dxWhlno5xw74K02Rmcmq/icpwC0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net; spf=pass smtp.mailfrom=gmx.net; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b=PVppWh9K; arc=none smtp.client-ip=212.227.15.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b="PVppWh9K" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1740174770; x=1740779570; i=ps.report@gmx.net; bh=hlmQngDh17Zs7kpd6oJl7Fm7cf+hFOFc8gYQDe1+8sA=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=PVppWh9KgUds4MWwZUjqRGbHCKbhJbjzBYk4p6f3xN465868VmywbMEGLStvq/DN bhCS6z6vksnq10YZFHmqrWQWmlvH/thaPFute3rzCzSR1XWFOg0XGJgRjkKMmr/v2 zI3MSDK7f952PPthezoYNIA8qogXdRHG09joCGS4nW+w4ibRGcshOU7xWZwetRAWC M2n0HEsKkw1FM4M4B6luTjLg7tOvZCJTN9tZhEOuGop06zV5Sz7uqoBn3N/IDU1bH AB7hfnfiEgMfyA4+CvRHNmLv6pzT8h9ybNFpm75nO2+q59uiwdhJBoTmYIcWnmi64 NVZuCT5UTMQ7lDHWSQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.92]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MRmfo-1tseVM2k38-00YvF0; Fri, 21 Feb 2025 22:52:50 +0100 From: Peter Seiderer To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan , Peter Seiderer , Thomas Gleixner , Artem Chernyshev , Nam Cao Subject: [PATCH net-next v6 1/8] net: pktgen: fix mix of int/long Date: Fri, 21 Feb 2025 22:52:39 +0100 Message-ID: <20250221215246.383373-2-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250221215246.383373-1-ps.report@gmx.net> References: <20250221215246.383373-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:daCJkPgJNTMqFcwc3PFH9ccb2l1aGY5FtgKw9axcnokW+WdVe3w oR07Fcp2YNz4Al+zFX+e+I+bQ5jm7foDH4IkKIDRIYZj3NCqQ34NBXZxQootmL2ex/nP5Bv xPlxRLYqpDvd3Kjl5kaUOaRxkp8Oe2Nu7pmCzuBxXl76d5NCiLlWqojuaGK3SxlXtigy+Qn xxXHr9DP37+r0idkNq7Mg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:4/KJDuLXjM0=;YA44kLkkc51Xd37dPOk0u1jznNC pppTfAuRkFHRqCpYcK18JmT4urc3OCgpSx8C/IxAZ96OhNrrLPSe/yk8ZeAwllXxPzm7YozN6 tUrmdruuCk9EN4KgwQPTtv4sFBMowJQni+5LeG56RZYp6HQY57NYO6I4t+KDqpHjTmxlxa8M6 Cf4ue2eI2V9jk2+Cd1OWMZAEoThPuaUvnuLZ0Na2848rkr3ba2cqbRQ7IrsBK8NrwnLIPI73f oldx9M3S0brTFTWcIslfpwGbgx0P4/0rXG1Iv/5koD+BLtSTC4QJflOZoAJH7r2ZR41nxcmM3 FFqHxDY30bRf7JrZiqqFn230VvmSlCxEAqUyL2c0t+scR+pLlCmW9gehm870eYF1ltB32zSh3 Lpew5DpE517cdXffMuKFrBo5rh9VdzoWExeOkTgExpCG92ieAaxlC9qhzx9L2n93t+b5NHSjH 5uzw1ch5Iw/5bG0DbxqCPm3/LiXFmAppTuFoGJlEEClK5tn/j+X52RczGRLr4pilg6r8AZuJL RkuEjLzVm+8mRtjyJZdl3FUjh88PEri8BmwzaLe/Lq83P9cf281+9YaLcC2tF836fRAEWDIUK kKJq/A+C/q6tMKSw4FLlWWP1hLyXoXVpNXDkaWyjbZkxWsQERKFP+51pTrCk56rdOXaDnrSn5 5jtC+37b2O6pwu1QzwumzcI+o0JaOgwrR+9OnVp/HUdF+RNtAwHiip+mZhlUibgGP4bFA7yTT isdPrroaDoiCrhKQqdMcflHhUjYqqx1sFb2NEpjp6OjvNQuBINildc/s7VGMXHyFb982jsidb TOzWf7ebATD2PUyp68ghS3z9yyDHpQZSOA/YI7z2eA13DX/CYHiViOJ56oIWHoEUTOhwdZ+Bs +iCGEx6mWIRzxtTyL/xELF1w0W9r1mjcXCNWJC2uVdr8LV0LOWntxjUYqwwLAAhn80kOjA4Qm 6xs6lbFjTCg6ghy6vCnIhJDGSsMFKZkMwyC23Ptnvxx74T22tkH3wXB/oBOe+4sFy1MEAZDNU 27xZIku4IO+MfCFOWq9YOaWM3PetEo8YFjrwijT70HpI7LKIBCQFE3VQa2TcvhdV4kBnKqLR9 gi3aQRNkNfnDFTNS+iZS7IdjuyYRU2fkHNPHtXvbfgqoPU3+HEbtGMn1n+IvvqfmRollIJXp9 +V2yh3ZpWkMAUi/K+tRohEI6BWxZD5WxRG5nhR6lz68WztsVYvgGVboaIrsKam0a4/9PbAPv/ BGFz2pNrmQXtubjkdKgxPMJASzyIrjtrW3sGCD3mLAFEe7tldKLeCubC9RBEThNAz/GZ1Zhjn Gu3jLSQgjUDE3Gu2tkemmuHEIzMAoBYUPlG623JxUxigpXPjhZdGDMoMq1uHw+cUFnBa2mzT+ NpkOqAt7yFSTyhN2nG0Ia1YFwZzqNZbsqBGlqeQkBbIJujoBCwOI7hA7WA Fix mix of int/long (and multiple conversion from/to) by using consequently size_t for i and max and ssize_t for len and adjust function signatures of hex32_arg(), count_trail_chars(), num_arg() and strn_len() accordingly. Signed-off-by: Peter Seiderer --- Changes v5 -> v6 - adjust to dropped patch ''net: pktgen: use defines for the various dec/hex number parsing digits lengths' - add rev-by Simon Horman - fix line break (suggested by Simon Horman) Changes v4 -> v5 - split up patchset into part i/ii (suggested by Simon Horman) - instead of align to most common pattern (int) adjust all usages to size_t for i and max and ssize_t for len and adjust function signatures of hex32_arg(), count_trail_chars(), num_arg() and strn_len() accordingly - respect reverse xmas tree order for local variable declarations (where possible without too much code churn) - update subject line and patch description - fix checkpatch warning '"foo * bar" should be "foo *bar"' for count_trail_chars() and strn_len() Changes v3 -> v4 - new patch (factored out of patch 'net: pktgen: fix access outside of user given buffer in pktgen_if_write()') --- net/core/pktgen.c | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 55064713223e..cd6b6c0dc0dc 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -746,10 +746,11 @@ static int pktgen_if_show(struct seq_file *seq, void *v) } -static int hex32_arg(const char __user *user_buffer, unsigned long maxlen, - __u32 *num) +static ssize_t hex32_arg(const char __user *user_buffer, size_t maxlen, + __u32 *num) { - int i = 0; + size_t i = 0; + *num = 0; for (; i < maxlen; i++) { @@ -768,10 +769,9 @@ static int hex32_arg(const char __user *user_buffer, unsigned long maxlen, return i; } -static int count_trail_chars(const char __user * user_buffer, - unsigned int maxlen) +static ssize_t count_trail_chars(const char __user *user_buffer, size_t maxlen) { - int i; + size_t i; for (i = 0; i < maxlen; i++) { char c; @@ -793,10 +793,10 @@ static int count_trail_chars(const char __user * user_buffer, return i; } -static long num_arg(const char __user *user_buffer, unsigned long maxlen, - unsigned long *num) +static ssize_t num_arg(const char __user *user_buffer, size_t maxlen, + unsigned long *num) { - int i; + size_t i; *num = 0; for (i = 0; i < maxlen; i++) { @@ -812,9 +812,9 @@ static long num_arg(const char __user *user_buffer, unsigned long maxlen, return i; } -static int strn_len(const char __user * user_buffer, unsigned int maxlen) +static ssize_t strn_len(const char __user *user_buffer, size_t maxlen) { - int i; + size_t i; for (i = 0; i < maxlen; i++) { char c; @@ -844,9 +844,9 @@ static int strn_len(const char __user * user_buffer, unsigned int maxlen) static ssize_t get_imix_entries(const char __user *buffer, struct pktgen_dev *pkt_dev) { - const int max_digits = 10; - int i = 0; - long len; + const size_t max_digits = 10; + size_t i = 0; + ssize_t len; char c; pkt_dev->n_imix_entries = 0; @@ -895,9 +895,9 @@ static ssize_t get_imix_entries(const char __user *buffer, static ssize_t get_labels(const char __user *buffer, struct pktgen_dev *pkt_dev) { unsigned int n = 0; + size_t i = 0; + ssize_t len; char c; - ssize_t i = 0; - int len; pkt_dev->nr_labels = 0; do { @@ -956,7 +956,8 @@ static ssize_t pktgen_if_write(struct file *file, { struct seq_file *seq = file->private_data; struct pktgen_dev *pkt_dev = seq->private; - int i, max, len; + size_t i, max; + ssize_t len; char name[16], valstr[32]; unsigned long value = 0; char *pg_result = NULL; @@ -1883,7 +1884,8 @@ static ssize_t pktgen_thread_write(struct file *file, { struct seq_file *seq = file->private_data; struct pktgen_thread *t = seq->private; - int i, max, len, ret; + size_t i, max; + ssize_t len, ret; char name[40]; char *pg_result;