diff mbox series

[RESEND,v3] nsfs: add compat ioctl handler

Message ID 20221214-nsfs-ioctl-compat-v3-1-dce2d26e1fec@weissschuh.net (mailing list archive)
State New, archived
Headers show
Series [RESEND,v3] nsfs: add compat ioctl handler | expand

Commit Message

Thomas Weißschuh Jan. 11, 2023, 4:46 p.m. UTC
As all parameters and return values of the ioctls have the same
representation on both 32bit and 64bit we can reuse the normal ioctl
handler for the compat handler via compat_ptr_ioctl().

All nsfs ioctls return a plain "int" filedescriptor which is a signed
4-byte integer type on both 32bit and 64bit.
The only parameter taken is by NS_GET_OWNER_UID and is a pointer to a
"uid_t" which is a 4-byte unsigned integer type on both 32bit and 64bit.

Fixes: 6786741dbf99 ("nsfs: add ioctl to get an owning user namespace for ns file descriptor")
Reported-by: Karel Zak <kzak@redhat.com>
Link: https://github.com/util-linux/util-linux/pull/1924#issuecomment-1344133656
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
Changes in v3:
- Resend without changes
  v1 and v2 did not reach the mailing lists due to an issue in my mail setup
- Link to v2: https://lore.kernel.org/r/20221214-nsfs-ioctl-compat-v2-0-b295bb3913f6@weissschuh.net

Changes in v2:
- Use compat_ptr_ioctl()
- Link to v1: https://lore.kernel.org/r/20221214-nsfs-ioctl-compat-v1-0-b169796000b2@weissschuh.net
---
 fs/nsfs.c | 1 +
 1 file changed, 1 insertion(+)


---
base-commit: f9ff5644bcc04221bae56f922122f2b7f5d24d62
change-id: 20221214-nsfs-ioctl-compat-1548bf6581a7

Best regards,

Comments

Al Viro Jan. 11, 2023, 8:45 p.m. UTC | #1
On Wed, Jan 11, 2023 at 04:46:30PM +0000, Thomas Weißschuh wrote:
> As all parameters and return values of the ioctls have the same
> representation on both 32bit and 64bit we can reuse the normal ioctl
> handler for the compat handler via compat_ptr_ioctl().
> 
> All nsfs ioctls return a plain "int" filedescriptor which is a signed
> 4-byte integer type on both 32bit and 64bit.
> The only parameter taken is by NS_GET_OWNER_UID and is a pointer to a
> "uid_t" which is a 4-byte unsigned integer type on both 32bit and 64bit.
> 
> Fixes: 6786741dbf99 ("nsfs: add ioctl to get an owning user namespace for ns file descriptor")
> Reported-by: Karel Zak <kzak@redhat.com>
> Link: https://github.com/util-linux/util-linux/pull/1924#issuecomment-1344133656
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>

Applied...
diff mbox series

Patch

diff --git a/fs/nsfs.c b/fs/nsfs.c
index 3506f6074288..c28f69edef97 100644
--- a/fs/nsfs.c
+++ b/fs/nsfs.c
@@ -21,6 +21,7 @@  static long ns_ioctl(struct file *filp, unsigned int ioctl,
 static const struct file_operations ns_file_operations = {
 	.llseek		= no_llseek,
 	.unlocked_ioctl = ns_ioctl,
+	.compat_ioctl   = compat_ptr_ioctl,
 };
 
 static char *ns_dname(struct dentry *dentry, char *buffer, int buflen)