lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 4 Jun 2023 11:17:56 +0200
From: Willem de Bruijn <willemdebruijn.kernel@...il.com>
To: Breno Leitao <leitao@...ian.org>
Cc: Remi Denis-Courmont <courmisch@...il.com>, "David S. Miller" <davem@...emloft.net>, 
	Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, 
	Alexander Aring <alex.aring@...il.com>, Stefan Schmidt <stefan@...enfreihafen.org>, 
	Miquel Raynal <miquel.raynal@...tlin.com>, David Ahern <dsahern@...nel.org>, 
	Matthieu Baerts <matthieu.baerts@...sares.net>, Mat Martineau <martineau@...nel.org>, 
	Marcelo Ricardo Leitner <marcelo.leitner@...il.com>, Xin Long <lucien.xin@...il.com>, axboe@...nel.dk, 
	asml.silence@...il.com, leit@...com, linux-kernel@...r.kernel.org, 
	netdev@...r.kernel.org, dccp@...r.kernel.org, linux-wpan@...r.kernel.org, 
	mptcp@...ts.linux.dev, linux-sctp@...r.kernel.org
Subject: Re: [PATCH net-next v5] net: ioctl: Use kernel memory on protocol
 ioctl callbacks

> On Sat, Jun 03, 2023 at 10:21:50AM +0200, Willem de Bruijn wrote:
> > On Fri, Jun 2, 2023 at 6:31 PM Breno Leitao <leitao@...ian.org> wrote:
> > > Signed-off-by: Breno Leitao <leitao@...ian.org>
> >
> > Please check the checkpatch output
> >
> > https://patchwork.hopto.org/static/nipa/753609/13265673/checkpatch/stdout
>
> I am checking my current checkpatch before sending the patch, but I am
> not seeing the problems above.
>
> My tree is at 44c026a73be8038 ("Linux 6.4-rc3"), and I am not able to
> reproduce the problems above.
>
>         $ scripts/checkpatch.pl v5/v5-0001-net-ioctl-Use-kernel-memory-on-protocol-ioctl-cal.patch
>         total: 0 errors, 0 warnings, 0 checks, 806 lines checked
>         v5/v5-0001-net-ioctl-Use-kernel-memory-on-protocol-ioctl-cal.patch has no obvious style problems and is ready for submission.
>
> Let me investigate what options I am missing when running checkpatch.

The reference is to the checkpatch as referenced by patchwork:

https://patchwork.kernel.org/project/netdevbpf/patch/20230602163044.1820619-1-leitao@debian.org/

The 80 character limit is a soft limit. But also note the CHECK
statements on whitespace.

>
> > > +/* A wrapper around sock ioctls, which copies the data from userspace
> > > + * (depending on the protocol/ioctl), and copies back the result to userspace.
> > > + * The main motivation for this function is to pass kernel memory to the
> > > + * protocol ioctl callbacks, instead of userspace memory.
> > > + */
> > > +int sk_ioctl(struct sock *sk, unsigned int cmd, void __user *arg)
> > > +{
> > > +       int rc = 1;
> > > +
> > > +       if (sk_is_ipmr(sk))
> > > +               rc = ipmr_sk_ioctl(sk, cmd, arg);
> > > +       else if (sk_is_icmpv6(sk))
> > > +               rc = ip6mr_sk_ioctl(sk, cmd, arg);
> > > +       else if (sk_is_phonet(sk))
> > > +               rc = phonet_sk_ioctl(sk, cmd, arg);
> >
> > Does this handle all phonet ioctl cases correctly?
> >
> > Notably pn_socket_ioctl has a SIOCPNGETOBJECT that reads and writes a u16.
>
> We are not touching  "struct proto_ops" in this patch at all.  And
> pn_socket_ioctl() is part of "struct proto_ops".
>
>         const struct proto_ops phonet_stream_ops = {
>                   ...
>                   .ioctl          = pn_socket_ioctl,
>         }
>
> That said, all the "struct proto_ops" ioctl calls backs continue to use
> "unsigned long arg" with userspace information, at least for now.

Ok. Perhaps good to call out in the commit message that this does not
convert all protocol ioctl callbacks.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ