From: David Laight <David.Laight@ACULAB.COM>
To: 'Arnd Bergmann' <arnd@kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Subject: RE: [PATCH v4 2/4] net: socket: rework SIOC?IFMAP ioctls
Date: Tue, 24 Nov 2020 16:13:35 +0000 [thread overview]
Message-ID: <e86a5d8a3aed44139010dac219dfcf08@AcuMS.aculab.com> (raw)
In-Reply-To: <20201124151828.169152-3-arnd@kernel.org>
From: Arnd Bergmann
> Sent: 24 November 2020 15:18
>
> SIOCGIFMAP and SIOCSIFMAP currently require compat_alloc_user_space()
> and copy_in_user() for compat mode.
>
> Move the compat handling into the location where the structures are
> actually used, to avoid using those interfaces and get a clearer
> implementation.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> changes in v3:
> - complete rewrite
...
> include/linux/compat.h | 18 ++++++------
> net/core/dev_ioctl.c | 64 +++++++++++++++++++++++++++++++++---------
> net/socket.c | 39 ++-----------------------
> 3 files changed, 62 insertions(+), 59 deletions(-)
>
> diff --git a/include/linux/compat.h b/include/linux/compat.h
> index 08dbd34bb7a5..47496c5eb5eb 100644
> --- a/include/linux/compat.h
> +++ b/include/linux/compat.h
> @@ -96,6 +96,15 @@ struct compat_iovec {
> compat_size_t iov_len;
> };
>
> +struct compat_ifmap {
> + compat_ulong_t mem_start;
> + compat_ulong_t mem_end;
> + unsigned short base_addr;
> + unsigned char irq;
> + unsigned char dma;
> + unsigned char port;
> +};
Isn't the only difference the number of pad bytes at the end?
If you don't copy these (in or out) then the compat version
isn't special at all.
Not copying the pad in or out would ensure you don't leak
kernel stack to userspace.
OTOH you may want to write the padding zero.
So a CT_ASSERT(offsetof (struct ifmap, port) == offsetof (struct compat_ifmap, port))
would suffice.
Maybe a CT_ASSERT_EQ_OFFSET(struct ifmap, struct compat_ifmap, port);
Would make the code easier to read.
Although you might want the version that adds an offset
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
next prev parent reply other threads:[~2020-11-24 16:14 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-24 15:18 [PATCH net-next v4 0/4] remove compat_alloc_user_space() Arnd Bergmann
2020-11-24 15:18 ` [PATCH v4 1/4] ethtool: improve compat ioctl handling Arnd Bergmann
2020-11-24 16:19 ` David Laight
2020-11-24 19:42 ` Arnd Bergmann
2020-11-24 15:18 ` [PATCH v4 2/4] net: socket: rework SIOC?IFMAP ioctls Arnd Bergmann
2020-11-24 16:13 ` David Laight [this message]
2020-11-24 19:05 ` Arnd Bergmann
2020-11-24 22:12 ` David Laight
2020-11-24 15:18 ` [PATCH v4 3/4] net: socket: simplify dev_ifconf handling Arnd Bergmann
2020-11-24 20:52 ` Jakub Kicinski
2020-11-24 15:18 ` [PATCH v4 4/4] net: socket: rework compat_ifreq_ioctl() Arnd Bergmann
2021-01-27 18:19 ` [PATCH net-next v4 0/4] remove compat_alloc_user_space() Christoph Hellwig
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=e86a5d8a3aed44139010dac219dfcf08@AcuMS.aculab.com \
--to=david.laight@aculab.com \
--cc=arnd@arndb.de \
--cc=arnd@kernel.org \
--cc=netdev@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.