From patchwork Thu Feb 27 13:55:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 13994548 Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (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 C1700231CB0; Thu, 27 Feb 2025 13:56:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.17.20 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740664604; cv=none; b=ousyISuwf3l40y5DeEttldkvwc3kdDAYF0peO7hmnKW3A4U6JZoMkNLT0+QczlHo/2NSNa+zx46M280yaZEIVCniTCttQlyUESTo4RnyevPS2YzZfvkrQ6tGbrVq2UqqO1wjiGcfSSKJPH47uDR8AbJ9Pqrzhb0QvtgoTxWNCSM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740664604; c=relaxed/simple; bh=JBwsIE0G5PpZHp9Ig3VCLqseKURIwGxoVhHIk/enk0U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HHcOZ3QcHlO73jiPWMCE7xEyNsFacHxYCTdfJNv+apTRuG6aRZdWMOFrg/jiopENhwkO7w5OU5l/zdc5q42w8P/E9saW1+vQQeRYO5nU//1B4YPudxfhQalDZWRCrqli9Dmdz0k4SOQVJXNkkqpwKDIvdjpsrjQFMl+eszrzXp0= 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=PXmbGoJ4; arc=none smtp.client-ip=212.227.17.20 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="PXmbGoJ4" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1740664574; x=1741269374; i=ps.report@gmx.net; bh=JBwsIE0G5PpZHp9Ig3VCLqseKURIwGxoVhHIk/enk0U=; 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=PXmbGoJ4xvP3FYTYMD+6fnqwEwZlRSdv/eB6h20nUhsenbbAp7HVAgYizrpnUwnD eBB2kv9ltFNBOb/EVSCc+d1ULgXnCuG+8DdMWf3d1IFWzL34B6u0hcjmgS5JPsS4n +9+VpUWO6k6K9MMutfu+HV17mYMH1dHdJQk1Jc7FleH45iX0rpEgnYCMkvj6xThBI methOKQAeeTGbXvXaujkDpNYMpSJxWUUQVZI54GWu+Ybi41omdwMEjqCM7kp5qqSw NSuPvJKJ5owj8y97bGK+QkpusBXFA1IyxLaPnT3UcbZlVJ8trSwO7fMoQZBawdvIx CGnuuHrcTCmtJLkHBQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.151]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MK3Vu-1tZoiB3KbW-00Yuhz; Thu, 27 Feb 2025 14:56:13 +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 , Fedor Pchelkin , Arnd Bergmann , Nam Cao Subject: [PATCH net-next v8 1/8] net: pktgen: fix mix of int/long Date: Thu, 27 Feb 2025 14:55:57 +0100 Message-ID: <20250227135604.40024-2-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250227135604.40024-1-ps.report@gmx.net> References: <20250227135604.40024-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:5YJH+RtdYpCMVRma0vwrNGDmn4wLX5z9OCQI32l2SiRnkV2muB4 uWg6/ab9eQ1PfVIkApLShYyhvQvMmPaNNackEW+hlSR7Y0AlwWJkyJHVH+E9UwoimtzdDkx 2zdYaAYuLwQYSICKhYrI+qWhp4giV8yJBKdQUUgjFjBoeJ1kPzm1LgI+5OUIsL1CeiL8fYs h4taQFhSSwDGTg0XFj8Hg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:zJSqOY/K9Go=;YtZ3qdVMbsdIxYaQWyG+y2M72mY U2PtJQ/ltsCXuXQPkT3/5p5jBoo3EuKls+LN7kCrsxwznCfUPGv56FWeFjoNZyPmb1B4N9tFO VTggIBPQ30iEBHdOpwgD499AmFiZtPtPhPTqryxQz/6BbbWvT/SP4V3hDCjcQs3pIZCv+pmi2 b+vtGiUrcUZu2ebDzyGZhlr78s7qLg1z67+0GOuzybsg0NU2jF1ObzPIH6i9/s6TttAN1S1yb DAVUxILL1t2yrszepU64V75Jbp9iPyOi+vKXFNYuI8vnnjal2SBNPGjO29Z42bFuljKqENf/5 1ef5VE8SrCCIZ+n1UovAYr3O0Zhg/oEi/bI4YzKFNBR/fEPMBXhY9z+BI4FTcBDroTPNCjI/t MZx5JTcQDi/d4b5PUJjtIomvFQwGXRpl6o57sdgWeY5Ie2zqTS8P0pyfQGcLkwMKxBS8hrZRJ WRJ9EmNSn1G5eC6U5f5BpVohgEc61vZYQVMmziKVW+pHdoxP3dlv5/VrmlqfalxKtNa2G9g8b mD0qpB/5WWn+80Lqg/5/S+hOB78220A0vVl+Apn6+kzoldDItluwdtB1F4jhnk2eVrnIN4mrK fZ+RcKgQm0E+yxsJ/SubycKcGA5YAWgeX+Z69MQfTaBDgytGuLPwCQipPXt9ShuEop7GRO5rn PGhNbNSKi4tLoT1tfD5De+QH+mRTsXP4BYpZKAKlgEseUsN4fYQUR6tyhsUzugWZcOAviO+8S dfm5QCuIhiNrAlg6adYl7siCsgg8RSbaCLsBCLSbCiw6HUPzo8iRoxm1eLsFkENgVRaNDkUZH j6teZPE0lSQNUnzXcb591qvQTa1DDWCvGWg6xdwtBPPLkQ/SUEG71H51CJLMBdldz2ewmumxC FIQq6Dx0QktR7QpUv3jpUAZX/V5qHR0vKVFeOGhuJ+VmwOsSrRq1Q/c7iTDHN2qZ8PD9SqGwM rPpqgCLBDAiv6KehI3yI91g84yxnIwjfV9bEePXk1vIQQmR+I9kdN+dY5H+MyYpmBPLcBufze 9SeoVQC8pJ1CIB7mEMQzo8FFvrmwmfptTPEPqfWsprPWPX8/90dq97qU0aLtA5t2VzsUCEuA+ FTtdXR2/kH4TmVag+GgpL1ISrw5nlgmLcvcCGt2Ie5d8tf9GpSi4DNd1yoVZcI28igdwJojmC M28oirguyvNqVQ8Uq1I1Sea+DSK3AkCff35GeFVU42I6/p6Cx2p7/BFXKQ69mXMmWQgwfVbhy ugxHKPKx4EpFKWVbF8TKoPauRCulmr/l0BKGr0Pzb2T+xi1AMYFbpyn3Desx9Gtur/1qtJdxA 8GekFMwYca6eYfk2AGFSnGRh/v6pYFSJr4sH77KJ452ySjZgqIQRzxHpOxEufhD5jVGRzc/lE G+9Zhktd1JTyemPq9nEFgjFTD+HnK8bN9B7BTTYnfFSRLSlbbSyaa9G/jP8LZ+iPWTtVuV/qs kPF981w== 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 Reviewed-by: Simon Horman --- Changes v7 -> v8 - rebased on actual net-next/main - add rev-by Simon Horman (this time for real) Changes v6 -> v7 - rebased on actual net-next/main - no changes 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 402e01a2ce19..4775cdd2ae1c 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -744,10 +744,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++) { @@ -766,10 +767,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; @@ -791,10 +791,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++) { @@ -810,9 +810,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; @@ -842,9 +842,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; @@ -893,9 +893,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 { @@ -954,7 +954,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; @@ -1881,7 +1882,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;