mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-19 19:01:00 +03:00
ccec88f11a
When reviewing #13875, I noticed that our FreeBSD code has an issue where it converts from `int64_t` to `int` when calling `vnlru_free{,_vfsops}()`. The result is that if the int64_t is `1 << 36`, the int will be 0, since the low bits are 0. Even when some low bits are set, a value such as `((1 << 36) + 1)` would truncate to 1, which is wrong. There is protection against this on 32-bit platforms, but on 64-bit platforms, there is no check to protect us, so we add a check. Reviewed-by: Alexander Motin <mav@FreeBSD.org> Reviewed-by: Ryan Moeller <ryan@iXsystems.com> Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu> Closes #13882 |
||
---|---|---|
.. | ||
abd_os.c | ||
arc_os.c | ||
crypto_os.c | ||
dmu_os.c | ||
event_os.c | ||
hkdf.c | ||
kmod_core.c | ||
spa_os.c | ||
sysctl_os.c | ||
vdev_file.c | ||
vdev_geom.c | ||
vdev_label_os.c | ||
zfs_acl.c | ||
zfs_ctldir.c | ||
zfs_debug.c | ||
zfs_dir.c | ||
zfs_file_os.c | ||
zfs_ioctl_compat.c | ||
zfs_ioctl_os.c | ||
zfs_racct.c | ||
zfs_vfsops.c | ||
zfs_vnops_os.c | ||
zfs_znode.c | ||
zio_crypt.c | ||
zvol_os.c |