From b553c19b057978140c7e049a0d3c07f1e21d5593 Mon Sep 17 00:00:00 2001 From: Tomohiro Kusumi Date: Fri, 26 Jul 2019 03:59:20 +0900 Subject: [PATCH] Don't directly cast unsigned long to void* Cast to uintptr_t first for portability on integer to/from pointer conversion. Reviewed-by: Brian Behlendorf Signed-off-by: Tomohiro Kusumi Closes #9065 --- module/zfs/zfs_ioctl.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/module/zfs/zfs_ioctl.c b/module/zfs/zfs_ioctl.c index c6b55d24f7ef..152433d60790 100644 --- a/module/zfs/zfs_ioctl.c +++ b/module/zfs/zfs_ioctl.c @@ -7110,7 +7110,8 @@ zfsdev_ioctl(struct file *filp, unsigned cmd, unsigned long arg) zc = kmem_zalloc(sizeof (zfs_cmd_t), KM_SLEEP); - error = ddi_copyin((void *)arg, zc, sizeof (zfs_cmd_t), flag); + error = ddi_copyin((void *)(uintptr_t)arg, zc, sizeof (zfs_cmd_t), + flag); if (error != 0) { error = SET_ERROR(EFAULT); goto out; @@ -7269,7 +7270,7 @@ zfsdev_ioctl(struct file *filp, unsigned cmd, unsigned long arg) out: nvlist_free(innvl); - rc = ddi_copyout(zc, (void *)arg, sizeof (zfs_cmd_t), flag); + rc = ddi_copyout(zc, (void *)(uintptr_t)arg, sizeof (zfs_cmd_t), flag); if (error == 0 && rc != 0) error = SET_ERROR(EFAULT); if (error == 0 && vec->zvec_allow_log) {