From 1724eb62debfaa48f5861660615d49a994945d94 Mon Sep 17 00:00:00 2001 From: LOLi Date: Wed, 4 Apr 2018 02:31:30 +0200 Subject: [PATCH] Fix spa reference leak in zfs_ioc_pool_scan zfs_ioc_pool_scan leaks a spa reference when zc->zc_flags is not a valid pool_scrub_cmd_t: this could happen if the userland binaries and ZFS kernel module differ in version and would prevent the pool from being exported. Reviewed by: Matt Ahrens Reviewed-by: Brian Behlendorf Reviewed-by: Giuseppe Di Natale Signed-off-by: loli10K Closes #7380 --- module/zfs/zfs_ioctl.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/module/zfs/zfs_ioctl.c b/module/zfs/zfs_ioctl.c index 8ef4cc46f..1e987dc88 100644 --- a/module/zfs/zfs_ioctl.c +++ b/module/zfs/zfs_ioctl.c @@ -1732,12 +1732,12 @@ zfs_ioc_pool_scan(zfs_cmd_t *zc) spa_t *spa; int error; - if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0) - return (error); - if (zc->zc_flags >= POOL_SCRUB_FLAGS_END) return (SET_ERROR(EINVAL)); + if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0) + return (error); + if (zc->zc_flags == POOL_SCRUB_PAUSE) error = spa_scrub_pause_resume(spa, POOL_SCRUB_PAUSE); else if (zc->zc_cookie == POOL_SCAN_NONE) -- 2.40.0