mirror_zfs/module/os/linux/zfs
Jorgen Lundman 3ad8826585 Avoid calling rw_destroy() on uninitialized rwlock
First the function `memset(&key, 0, ...)` but
any call to "goto error;" would call zio_crypt_key_destroy(key) which
calls `rw_destroy()`. The `rw_init()` is moved up to be right after the
memset. This way the rwlock can be released.

The ctx does allocate memory, but that is handled by the memset to 0
and icp skips NULL ptrs.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Signed-off-by: Jorgen Lundman <lundman@lundman.net>
Closes #13976
2024-02-21 13:35:13 -08:00
..
abd_os.c Linux 6.8 compat: replace MAX_ORDER define 2024-02-08 13:29:28 -08:00
arc_os.c linux 6.7 compat: rework shrinker setup for heap allocations 2024-02-08 13:29:28 -08:00
Makefile.in Restore FreeBSD resource usage accounting 2021-02-19 22:34:33 -08:00
mmp_os.c Add zfs_multihost_interval tunable handler for FreeBSD 2020-06-23 13:32:42 -07:00
policy.c Linux 6.3 compat: idmapped mount API changes 2023-06-05 10:59:02 -07:00
qat_compress.c QAT: Fix uninitialized seed in QAT compression 2023-03-17 11:09:07 -07:00
qat_crypt.c QAT related bug fixes 2019-09-12 13:33:44 -07:00
qat.c QAT related bug fixes 2019-09-12 13:33:44 -07:00
spa_misc_os.c Make spa_history_zone platform-dependent in kernel 2020-03-02 09:43:30 -08:00
trace.c Enable use of DTRACE_PROBE* macros in "spl" module 2019-11-01 13:13:43 -07:00
vdev_disk.c Linux 6.8 compat: update for new bdev access functions 2024-02-08 13:29:28 -08:00
vdev_file.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
zfs_acl.c Use fallthrough macro 2021-11-02 09:50:30 -07:00
zfs_ctldir.c linux 6.7 compat: use inode atime/mtime accessors 2024-02-08 13:29:28 -08:00
zfs_debug.c Cleanup: Replace oldstyle struct hack with C99 flexible array members 2023-09-20 10:10:41 -07:00
zfs_dir.c skip permission checks for extended attributes 2023-01-05 11:10:28 -08:00
zfs_file_os.c file reference counts can get corrupted 2021-09-14 12:37:38 -07:00
zfs_ioctl_os.c Linux 6.3 compat: idmapped mount API changes 2023-06-05 10:59:02 -07:00
zfs_racct.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
zfs_sysfs.c Linux 5.18 compat: kobj_type.default_attrs replaced with default_groups 2022-04-25 10:00:09 -07:00
zfs_uio.c autoconf: Fail when __copy_from_user_inatomic is a non-GPL symbol 2022-05-20 10:33:24 -07:00
zfs_vfsops.c linux 6.7 compat: handle superblock shrinker member change 2024-02-08 13:29:28 -08:00
zfs_vnops_os.c Linux 6.7 compat: zfs_setattr fix atime update 2024-02-08 13:29:28 -08:00
zfs_znode.c linux 6.7 compat: use inode atime/mtime accessors 2024-02-08 13:29:28 -08:00
zio_crypt.c Avoid calling rw_destroy() on uninitialized rwlock 2024-02-21 13:35:13 -08:00
zpl_ctldir.c Linux 6.6 compat: generic_fillattr has a new u32 request_mask added at arg2 2024-02-08 13:29:28 -08:00
zpl_export.c Return required size when encode_fh size too small 2021-05-10 12:13:45 -07:00
zpl_file.c Linux 6.5 compat: Use copy_splice_read instead of filemap_splice_read 2023-09-11 16:34:12 -07:00
zpl_inode.c linux 6.7 compat: use inode atime/mtime accessors 2024-02-08 13:29:28 -08:00
zpl_super.c Linux: Fix ZFS_ENTER/ZFS_EXIT/ZFS_VERFY_ZP usage 2020-11-14 10:19:00 -08:00
zpl_xattr.c Linux 6.6 compat: use inode_get/set_ctime*(...) 2024-02-08 13:29:28 -08:00
zvol_os.c Linux 6.6 compat: fsync_bdev() has been removed in favor of sync_blockdev() 2024-02-08 13:29:28 -08:00