From patchwork Mon Feb 24 09:22:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 13987660 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 982FD2512F1; Mon, 24 Feb 2025 09:23:10 +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=1740388992; cv=none; b=FVQr7lKlv6dQJf8H1IbW+5wqMA4wSuFaucJszvXFKm0PgR/LejZ5B/83+zmQqzgjJ/WoRHLcsI27OybAPR9WaYqqJNXNf1zCJb68ahnxmxIVeJAZVFsYWckg4WRN+WJJaWzSj7HwCv1jbsX+qfWwu5eY2De8+cHz/GPZhEp5mXQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740388992; c=relaxed/simple; bh=ksZkkfZczqWkUOUwhDqkbBYxs3OevWU1psBwOZOSoMM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kbvYa4Q1VJenUczI+u8dHvIkeXscGiKdYPJKUrlXjKQNKQKFWZgMJHd4+YvhnTiCgasJ+aar/0tZ9+6T+nCzIjtIpxhe26oGkqpsqswV63o93JukRqjWuqBSu7GlIYKFdoOHmTgdcCGFpETAM8o77PVamyNuIOBcQhaDKfCh6Xc= 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=IQu1amM5; 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="IQu1amM5" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1740388971; x=1740993771; i=ps.report@gmx.net; bh=ksZkkfZczqWkUOUwhDqkbBYxs3OevWU1psBwOZOSoMM=; 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=IQu1amM5PUbGo5MWFQ7sCW6W2KKK5AdnEsH+awwECBKkkJgMRLfHRs7BGLeNhCDz nlmgTJBrZsFTgY3WaNgRLgJ1bT9Bh1DqIEDMzpOg1Poh2vpKMqGcollJDM7hCZVzQ LVGTBgfQDl2AxCe2wDMyTUaY8V3MwqIkunnST84MHqdwd6ABd4uIM+22uJtvmV2TG r18IlQKVjl3Biq/BUW4CFK9RQzBn3+3iwhvancAvubkOn7BWtfLPhoXHQ4NPI5hhj RYnt/PKcHiCbkIPi5FJbs3cWYOCJ41HSHetSGGWSE4A0lUJD4eLO0HkBYlaRG3YMa c8bPfjbtjTuYPLJZig== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.227]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MLQxN-1u4z840Evz-00OYxV; Mon, 24 Feb 2025 10:22:51 +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 , Frederic Weisbecker , Nam Cao Subject: [PATCH net-next v7 1/8] net: pktgen: fix mix of int/long Date: Mon, 24 Feb 2025 10:22:35 +0100 Message-ID: <20250224092242.13192-2-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250224092242.13192-1-ps.report@gmx.net> References: <20250224092242.13192-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:D1wnGvw6mJOEWaHzPgQtc/gKeC5y7C7JXhV/gNtXkegV/cOCHXw wFC6Q8YJa4bElNUV5w/8qJzGqpZ3IojhvbDUanKlr3M7VECY7A+4sjKxlYUQBEvj3tnoWl9 gFiSdnIO0bbcYxQI2SORcO3X5NO7HahJDgaYnmG9XVxx3w6eJkkrA8rTZHLujotwLOotTGF t0ZjSwqpSjTGY4LatY4fA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:UUXUDuHYv1Y=;YPhuVndzRcl1L4pKOmjFT+eOUxE Z7wDUnQqFRj4wXtV1XT5AStFmdLzKjW7a7MnT8pI1iINjlScupfxVEzux1CJOYI7x+ZlIZvjs uvqElT+xKKml6ixUUL1jEuAON0vSMOCxSu/G0mzk63LoTg5UAVD9QrimUg5DmVu+BW80vtkZO ZgazrnqwcQN6YjnYDBF4ZeHMv9XlgLjckKPg7de0hp5keDHH/UVxJOSrxEO11YbMa0hYNodLm N3I1T8VVjL3UKfbMJO96+WiKT6WC5ZVl1ez90s2UcoCNWubTBEwzQQkFZbYyjaj69ih18hD3Y wIokAKJ2ORC7l4pcyaHDpE8fbTB5qCHzT1A3+8x8Z1cn3Lin/2VWvPHLz6jh3f5SssqN2+aOS miAQptJP6RztH8mRDQcbzvTlkykiv97nuYzaxJLLhIXAtM10lfRn0PomjkEmr6S87c1nJ0Sco KGOt1TbL10SFDByO1udJJOz59ktUzI9IOmmG22yY2uWFen5ZilVV95pFxYf5TYl9Rg/wzi8W8 SzMXQNJV0nnL4uixfXgurPhcFGw5cxvtonKH5ZoKFo2ffwa7iev7aVjtbKBi0cpFhlG29903M EGIBqLh891eCLABHfe9zDO2EYX9sbSleMSPmFfyu4+i0s0KtGNKfndzqk6wrBx1zgPCZJ3P4/ oJo81h9hXcalpeswFLVQsCodWb3boaLZ7ZNfT+znwZtBGiM4WWEgEEU0UJokeOlP6bxNBcZmr UiuYg8xBk9VmTc/Xs7nOLgakMPmRAmF+11xP4Zr7GimzX6KCvq1JNYhxK45vuCvHThsffnJQw PRn5o7IfBeiVk0IWklNuZZAfj1OPCt77vBAUMu/8SnvksmNjOcEdw8gAXdE+z/7zhTZJHmFXj D2GQHsOnjYVUlAbCdPbPxK47v71yyIYCDHbX9iFaNG4R6oB/dkItKqmjLOD3R4cHbbBznGGwn Zavi3881jM9divsJyMY86HdNRUPc/TWjeHReQ/ng8aA869PHZ4IhvRjMD1s2avwhZSmH5F9If 6uTYXMWar2dPLZ6Fl1QF5iyyUdtfXMMaTsqjcVuB5SEC24Wu8XRDO0J0Kr7gnp0tpzahMr3qx LvyXqA9TKljP/xnRN11batKtRIREgUnfF3RnxLvRf+fsV1/J1QO0Fiya5brer4j7uEzH2c16F 0H9g+3q3kSdUkOxwgqKXO2bX34cMrJxXbk6innJSxkZMIL2uAW8KCNyE2LsZpxcsatt2/s2i0 MyddMhE7xMHn0hKI6NICaNUpXZCWKMrenFuDnm/QLZ+IUC6DUlIPnJDlhg+XNXIymmjt1JOFk 6ET45z2gXGHqN1iKc1HZjk+Q2KZcvYLCNkVoH7CnOFBhn9RmETBaIkbhiYSi+RmLQ3ivGtvhB 2o+MZd6+AuCO4j/D61OhA0PXaEuo7JwZ1uRmlyhHkyblgo0kTh9jt4Qici 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 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 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;