Linux Kernel Selftest development
 help / color / mirror / Atom feed
From: Paolo Abeni <pabeni@redhat.com>
To: Peter Seiderer <ps.report@gmx.net>, netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
	"David S . Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Simon Horman <horms@kernel.org>,
	Shuah Khan <shuah@kernel.org>, Nam Cao <namcao@linutronix.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	Frederic Weisbecker <frederic@kernel.org>,
	Artem Chernyshev <artem.chernyshev@red-soft.ru>
Subject: Re: [PATCH net-next v3 08/10] net: pktgen: fix access outside of user given buffer in pktgen_if_write()
Date: Tue, 4 Feb 2025 11:40:21 +0100	[thread overview]
Message-ID: <914e488e-af7d-4301-8be2-410db5325f14@redhat.com> (raw)
In-Reply-To: <20250203170201.1661703-9-ps.report@gmx.net>

Hi,

On 2/3/25 6:01 PM, Peter Seiderer wrote:
> @@ -806,6 +812,9 @@ static long num_arg(const char __user *user_buffer, unsigned long maxlen,
>  		if ((c >= '0') && (c <= '9')) {
>  			*num *= 10;
>  			*num += c - '0';
> +		} else if (i == 0) {
> +			// no valid character parsed, error out

Minor nit: please don't use C99 comments, even for single line one.

> +			return -EINVAL;
>  		} else
>  			break;
>  	}
> @@ -816,6 +825,9 @@ static int strn_len(const char __user * user_buffer, unsigned int maxlen)
>  {
>  	int i;
>  
> +	if (!maxlen)
> +		return -EINVAL;

It looks like this check is not needed? strn_len() will return 0 and the
caller will read 0 bytes from the user_buffer.

> @@ -882,39 +897,45 @@ static ssize_t get_imix_entries(const char __user *buffer,
>  		pkt_dev->imix_entries[pkt_dev->n_imix_entries].weight = weight;
>  
>  		i += len;
> +		pkt_dev->n_imix_entries++;
> +
> +		if (i >= maxlen)
> +			break;
>  		if (get_user(c, &buffer[i]))
>  			return -EFAULT;
> -
>  		i++;
> -		pkt_dev->n_imix_entries++;
>  	} while (c == ' ');
>  
>  	return i;
>  }
>  
> -static ssize_t get_labels(const char __user *buffer, struct pktgen_dev *pkt_dev)
> +static ssize_t get_labels(const char __user *buffer, int maxlen, struct pktgen_dev *pkt_dev)
>  {
>  	unsigned int n = 0;
>  	char c;
> -	ssize_t i = 0;
> -	int len;
> +	int i = 0, max, len;

Minor nit: since you are touching the variables declaration, please fix
them to respect the reverse christmas tree order.

This patch is quite large and mixes several things. I'll split out at
least the strn_len() caller fixes (possibly even the num_arg() and
hex32_arg() ones) and the refactoring in pktgen_if_write().

/P


  reply	other threads:[~2025-02-04 10:40 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-03 17:01 [PATCH net-next v3 00/10] Some pktgen fixes/improvments Peter Seiderer
2025-02-03 17:01 ` [PATCH net-next v3 01/10] net: pktgen: replace ENOTSUPP with EOPNOTSUPP Peter Seiderer
2025-02-04 14:42   ` Simon Horman
2025-02-03 17:01 ` [PATCH net-next v3 02/10] net: pktgen: enable 'param=value' parsing Peter Seiderer
2025-02-04 10:55   ` Paolo Abeni
2025-02-05 13:06     ` Peter Seiderer
2025-02-03 17:01 ` [PATCH net-next v3 03/10] net: pktgen: fix hex32_arg parsing for short reads Peter Seiderer
2025-02-04 14:43   ` Simon Horman
2025-02-03 17:01 ` [PATCH net-next v3 04/10] net: pktgen: fix 'rate 0' error handling (return -EINVAL) Peter Seiderer
2025-02-04 14:44   ` Simon Horman
2025-02-03 17:01 ` [PATCH net-next v3 05/10] net: pktgen: fix 'ratep " Peter Seiderer
2025-02-04 14:44   ` Simon Horman
2025-02-03 17:01 ` [PATCH net-next v3 06/10] net: pktgen: fix ctrl interface command parsing Peter Seiderer
2025-02-04 14:44   ` Simon Horman
2025-02-03 17:01 ` [PATCH net-next v3 07/10] net: pktgen: fix access outside of user given buffer in pktgen_thread_write() Peter Seiderer
2025-02-04 14:45   ` Simon Horman
2025-02-03 17:01 ` [PATCH net-next v3 08/10] net: pktgen: fix access outside of user given buffer in pktgen_if_write() Peter Seiderer
2025-02-04 10:40   ` Paolo Abeni [this message]
2025-02-05 13:09     ` Peter Seiderer
2025-02-04 10:52   ` Simon Horman
2025-02-05 13:10     ` Peter Seiderer
2025-02-03 17:02 ` [PATCH net-next v3 09/10] net: pktgen: fix mpls reset parsing Peter Seiderer
2025-02-04 14:45   ` Simon Horman
2025-02-03 17:02 ` [PATCH net-next v3 10/10] selftest: net: add proc_net_pktgen Peter Seiderer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=914e488e-af7d-4301-8be2-410db5325f14@redhat.com \
    --to=pabeni@redhat.com \
    --cc=artem.chernyshev@red-soft.ru \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=frederic@kernel.org \
    --cc=horms@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=namcao@linutronix.de \
    --cc=netdev@vger.kernel.org \
    --cc=ps.report@gmx.net \
    --cc=shuah@kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox