From patchwork Thu Feb 13 11:19:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 864972 Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (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 2E6F921D3E8; Thu, 13 Feb 2025 11:19:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739445581; cv=none; b=EfW3vj2pLAqx3L5D+G8ewwU25sCVI4NU6nelBkl18KeEArhb6V2B8I1bzZUNOcnw9Kb+PF21cF5QT3A9Cozo4XAY/+YuDYvFMpx3VrjfDsetp2TmVkhUqpTzl1nzDC2tsTmyOc10R/j/UVGw6glPQteotaaBvuFmlCzbUwe3bSY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739445581; c=relaxed/simple; bh=PPRujci8tehuD+R56FULZVH8pZlNtu9IzdM/CxcRGws=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VIMLZ0pjfW753oDOONRHpyo+my+XT5Pxn1wa/lF4jM5ZH1N1YwHH4W9+AoFxotmNhva0y57YlhgNmMuHQt1NrG+JM0zL3mTgN8Th4dt2qsEnC9SD9uhuOLHs5QqBZIMwIAIOH6SC8UGtoGdo7YopMY7owap+BqtiRfwkk7cjU5M= 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=li2AQ3Ln; arc=none smtp.client-ip=212.227.15.18 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="li2AQ3Ln" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1739445565; x=1740050365; i=ps.report@gmx.net; bh=PPRujci8tehuD+R56FULZVH8pZlNtu9IzdM/CxcRGws=; 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=li2AQ3Lnu2K2BqEupAnNIjYnHIF15uOWvTCWqBHeSCiO8ehQwpq7G2AlQAD4+xy+ kdahvmiN1OOwvcrXu3C5hMX/qOiRJt51ST4tKX4Bc/1JiAVj4q25vn99GfOjP36N3 cQ0Nj8eyJXwI+vjUMaIZMFDGU3uHyARhDP7ikwfWDQKO2rBrScrOM6PtdSwmXc8s5 5/b3KhBYOl5LpREZUpU8XNX15BxEufK9rlPYmoMAO9kQrxrLWi/LIl8/V4KCqCfTg krWtNqxHP8bbohIfSgPwEEsuzRRAiOT//yFiZ+/1gTDL23JTH6vwu2RvQ3Ffz8z5s oApVVMtHgn0dDUu+zw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.197]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N2mBa-1tEfcP16aa-016c3T; Thu, 13 Feb 2025 12:19:25 +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 , Frederic Weisbecker Subject: [PATCH net-next v5 1/8] net: pktgen: fix mix of int/long Date: Thu, 13 Feb 2025 12:19:13 +0100 Message-ID: <20250213111920.1439021-2-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250213111920.1439021-1-ps.report@gmx.net> References: <20250213111920.1439021-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:VaU+mn2E25mkSpJg8l+UeQBYipo3hq2Fw+UVGOWrdklO1R8Dett SLHWuHFLoQgPUv0MXY/3dPOVJUI+7pAQ2HWI2NNMgK1G7KtQ+pHtt8g4LbtuqpjW86Yyigm j00BnwDf8K+70pZbmIk42AHKkIX1bTY8UIybDbWfufNJ0vLk6DKJxeq1AiSsbCkzhk6YF10 OYK1QpnBhnVX1ykAigJiw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:P0ApSs0MSjQ=;uCOnJJF/QvqPlD+n39NoqMXmVLS eM5EWb0Ud6xyEV3W8w/grya8xA9V41C45L4wdxBJCT2CuB1AylAxQED28stme8xWHu6Mm0kmG OpibkqglQPf01Ogn6u/hZq/XCKb1NHLIYsRFGuD0U0Hiwtw3xuFfXzVFw0ZVb6d2JpAUixNN6 NnW4c7KLEErKDy0uz+nbU5cxOu6toJpTPs+TnDFf+XudgboDGPkPB7B/mjYBxOsPh5FgZQZSJ fF7JX4+pJQBUHgAl7J09Yis1ubqLHWazN6MJfHoysovULwxOE64TPJd+NDSqx2BlAYHvAGkDD 1jezLWMAFsNQjjFcsYvDUTmK0ukU2MA6Y6s/i7bc83Sal8DnDzPWRU50IjNe8R7BEcreo8yKL FzmvAJJ47rM6vKfTrMDdLsjpZDp4mLC539eRLNYsfVGeMDWj07GhU1FSBVdQGfAZR0gsmhHcd 1mK0lNeMm8bkVPJqM6irDjQNbeWiI6LvxECQUHusEf/FGX5QThWRKGEKPupkdnGfVtz+v0yTh yUixr8IIwn/H+7d97p6SluJKrbMuv92oJkyXltU7Hf4+QQbyl0zobqldJ3QQQkwgcqWQVeWsE 6XsS5bypImJg+628k9D/hILPVQBVRMCh22DW4ttu+Dfft7vQiycEb/jfbfjHnPauBZj5ys+Z1 7Qci0wxw3FNSVF14/jjihXgiii345SWM3gMhIyoM5HtBOlUuNWHGKtKEabn4iE56M+CtCdr36 QNGmvgIFZuU7UBvgEmvlgasOh67X59Poskvr1AnWEl+E/NtoWtHHsRhpJWIhzbJogtJe8Iwdt GX1yYpAAN/tFm/hPU2c7WlOIKqML7bOESsuGKoRbFQtyuVCYwoSOaGxEtkODOWM6JcPY3yhv6 pCzyfPaAPKr9os/FrsRG1DPw0xaZKbbpL9u2ZXP9U4ruoPC1+/QBnFaJankEpUUkYnXH/lP+7 9DrcwdNzs3ISz5Plks3KqPIhP6kKnyc9E65OgW5ECMhgrrZ0rjHmteX34Mx0v5gV2HLlJvtvD obdruaQsgxkhmBy4fGPArauSXJOey3mIViIAVJohcUvMvC+uyHBh+bQkxmW1FVRUfpqW2Fnsj UstRLggHIsyVj/Fh9aHwDXqVSCKYWgHCt7xEz8MiyMP6Lcy53cmSaQtVbJmDixsP9rMYCrFCi xdRL5gkGqMaJnaB4A5qcC05pvM7V78KS68SU2dEjL48YPBad0zZ42qFFKvViRT7Y6naMjcBy8 RuhECNp2BEbGRPjGPUvyuS0MM+VPaFodHtDY/8bsyXQInZg8Upf8B3Rbf1X/lO+9/Nn/Mw7/H An6mVSRfgHmbrv74iX2FMR8pAeuxfpYVQ0XmECTbxu3A9GL0S1aOveqb7GiZgDlQ3tsFwDxcG mx2FPFWRzS3zqEhMdiyY5/GYqcNXmKr7is5DZkPtrdzeZHdP7nuMLoC9kw 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 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 | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 4f201a2db2dc..36ee0422c6cc 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -755,10 +755,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++) { @@ -777,10 +778,10 @@ 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; @@ -802,10 +803,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++) { @@ -821,9 +822,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; @@ -853,8 +854,8 @@ 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) { - int i = 0; - long len; + size_t i = 0; + ssize_t len; char c; pkt_dev->n_imix_entries = 0; @@ -903,9 +904,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 { @@ -964,7 +965,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; @@ -1891,7 +1893,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;