linux/fs/jfs
Jori Koolstra b4330a0d09 jfs: nlink overflow in jfs_rename
[ Upstream commit 9218dc26fd ]

If nlink is maximal for a directory (-1) and inside that directory you
perform a rename for some child directory (not moving from the parent),
then the nlink of the first directory is first incremented and later
decremented. Normally this is fine, but when nlink = -1 this causes a
wrap around to 0, and then drop_nlink issues a warning.

After applying the patch syzbot no longer issues any warnings. I also
ran some basic fs tests to look for any regressions.

Signed-off-by: Jori Koolstra <jkoolstra@xs4all.nl>
Reported-by: syzbot+9131ddfd7870623b719f@syzkaller.appspotmail.com
Closes: https://syzbot.org/bug?extid=9131ddfd7870623b719f
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2026-03-04 07:20:07 -05:00
..
acl.c vfs: add rcu argument to ->get_acl() callback 2021-08-18 22:08:24 +02:00
file.c jfs: Regular file corruption check 2025-08-28 16:24:23 +02:00
inode.c jfs: Verify inode mode when loading from disk 2025-12-07 06:09:22 +09:00
ioctl.c jfs: convert to fileattr 2021-04-12 15:04:29 +02:00
jfs_acl.h vfs: add rcu argument to ->get_acl() callback 2021-08-18 22:08:24 +02:00
jfs_btree.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
jfs_debug.c proc: convert everything to "struct proc_ops" 2020-02-04 03:05:26 +00:00
jfs_debug.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
jfs_dinode.h jfs: define xtree root and page independently 2025-05-02 07:44:39 +02:00
jfs_discard.c jfs: Fix null-ptr-deref in jfs_ioc_trim 2025-06-27 11:05:30 +01:00
jfs_discard.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
jfs_dmap.c jfs: upper bound check of tree index in dbAllocAG 2025-08-28 16:24:23 +02:00
jfs_dmap.h jfs: Fix array index bounds check in dbAdjTree 2020-11-13 16:03:07 -06:00
jfs_dtree.c jfs: fix null ptr deref in dtInsertEntry 2025-07-17 18:30:48 +02:00
jfs_dtree.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
jfs_extent.c jfs: validate max amount of blocks before allocation. 2023-09-19 12:22:43 +02:00
jfs_extent.h jfs: delete duplicated words + other fixes 2020-11-13 13:36:00 -06:00
jfs_filsys.h jfs: jfs_dmap: Validate db_l2nbperpage while mounting 2023-07-23 13:47:49 +02:00
jfs_imap.c jfs: reject on-disk inodes of an unsupported type 2025-08-28 16:24:05 +02:00
jfs_imap.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
jfs_incore.h jfs: define xtree root and page independently 2025-05-02 07:44:39 +02:00
jfs_inode.c inode: make init and permission helpers idmapped mount aware 2021-01-24 14:27:16 +01:00
jfs_inode.h jfs: convert to fileattr 2021-04-12 15:04:29 +02:00
jfs_lock.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
jfs_logmgr.c jfs: Add missing set_freezable() for freezable kthread 2026-03-04 07:20:07 -05:00
jfs_logmgr.h jfs: delete duplicated words + other fixes 2020-11-13 13:36:00 -06:00
jfs_metapage.c fs: Introduce i_blocks_per_page 2020-09-21 08:59:26 -07:00
jfs_metapage.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
jfs_mount.c jfs: fix uaf in jfs_evict_inode 2024-02-23 08:54:39 +01:00
jfs_superblock.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
jfs_txnmgr.c jfs: fix uninitialized waitqueue in transaction manager 2025-12-07 06:09:22 +09:00
jfs_txnmgr.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
jfs_types.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
jfs_umount.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
jfs_unicode.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
jfs_unicode.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
jfs_uniupr.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
jfs_xattr.h jfs: Replace zero-length array with flexible-array member 2020-03-09 15:18:51 -05:00
jfs_xtree.c jfs: define xtree root and page independently 2025-05-02 07:44:39 +02:00
jfs_xtree.h jfs: define xtree root and page independently 2025-05-02 07:44:39 +02:00
Kconfig docs: fix a couple of new broken references 2019-07-31 14:12:26 -06:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
namei.c jfs: nlink overflow in jfs_rename 2026-03-04 07:20:07 -05:00
resize.c block: move struct block_device to blk_types.h 2020-06-24 09:16:02 -06:00
super.c jfs: Avoid field-overflowing memcpy() 2021-06-23 09:21:52 -05:00
symlink.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
xattr.c jfs: fix slab-out-of-bounds read in ea_get() 2025-04-10 14:32:06 +02:00