From f454cc17235586ddcec717572c14ca1f72e558e5 Mon Sep 17 00:00:00 2001 From: Rob Norris Date: Fri, 16 May 2025 21:43:38 +1000 Subject: [PATCH] libzfs: ensure all ioctl calls go through lzc_ioctl_fd() Sponsored-by: https://despairlabs.com/sponsor/ Reviewed-by: Brian Behlendorf Reviewed-by: Alexander Motin Signed-off-by: Rob Norris Closes #17344 --- lib/libzfs/libzfs_dataset.c | 2 +- lib/libzfs/libzfs_util.c | 6 ++++++ lib/libzfs/os/freebsd/libzfs_compat.c | 6 ------ lib/libzfs/os/linux/libzfs_util_os.c | 6 ------ 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/lib/libzfs/libzfs_dataset.c b/lib/libzfs/libzfs_dataset.c index 68aa2f2cb..91560b40b 100644 --- a/lib/libzfs/libzfs_dataset.c +++ b/lib/libzfs/libzfs_dataset.c @@ -4911,7 +4911,7 @@ zfs_smb_acl_mgmt(libzfs_handle_t *hdl, char *dataset, char *path, default: return (-1); } - error = ioctl(hdl->libzfs_fd, ZFS_IOC_SMB_ACL, &zc); + error = lzc_ioctl_fd(hdl->libzfs_fd, ZFS_IOC_SMB_ACL, &zc); nvlist_free(nvlist); return (error); } diff --git a/lib/libzfs/libzfs_util.c b/lib/libzfs/libzfs_util.c index e450d94ad..4edddc2a7 100644 --- a/lib/libzfs/libzfs_util.c +++ b/lib/libzfs/libzfs_util.c @@ -785,6 +785,12 @@ zpool_standard_error_fmt(libzfs_handle_t *hdl, int error, const char *fmt, ...) return (-1); } +int +zfs_ioctl(libzfs_handle_t *hdl, int request, zfs_cmd_t *zc) +{ + return (lzc_ioctl_fd(hdl->libzfs_fd, request, zc)); +} + /* * Display an out of memory error message and abort the current program. */ diff --git a/lib/libzfs/os/freebsd/libzfs_compat.c b/lib/libzfs/os/freebsd/libzfs_compat.c index 4d7c12d9c..e772e3e12 100644 --- a/lib/libzfs/os/freebsd/libzfs_compat.c +++ b/lib/libzfs/os/freebsd/libzfs_compat.c @@ -218,12 +218,6 @@ libzfs_error_init(int error) return (errbuf); } -int -zfs_ioctl(libzfs_handle_t *hdl, int request, zfs_cmd_t *zc) -{ - return (lzc_ioctl_fd(hdl->libzfs_fd, request, zc)); -} - /* * Verify the required ZFS_DEV device is available and optionally attempt * to load the ZFS modules. Under normal circumstances the modules diff --git a/lib/libzfs/os/linux/libzfs_util_os.c b/lib/libzfs/os/linux/libzfs_util_os.c index e750199cf..55dfdf372 100644 --- a/lib/libzfs/os/linux/libzfs_util_os.c +++ b/lib/libzfs/os/linux/libzfs_util_os.c @@ -53,12 +53,6 @@ #define ZDIFF_SHARESDIR "/.zfs/shares/" -int -zfs_ioctl(libzfs_handle_t *hdl, int request, zfs_cmd_t *zc) -{ - return (ioctl(hdl->libzfs_fd, request, zc)); -} - const char * libzfs_error_init(int error) {