diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2026-09-07 10:01:38 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2026-09-07 10:01:38 -0700 |
| commit | c297ed90fbba72d32b7759aae362b36d15b2db1f (patch) | |
| tree | 81f3c4e0c3e817972ba58e539b2db4477d993296 /include/linux/serial_reg.h | |
| parent | df2908090cda368b01ff43709f51890076c56157 (diff) | |
| parent | f06c2d26d1999d37e93299db0ecead04ca7d0b9f (diff) | |
| download | linux-c297ed90fbba72d32b7759aae362b36d15b2db1f.tar.gz linux-c297ed90fbba72d32b7759aae362b36d15b2db1f.zip | |
Merge tag 'configfs-7.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/leitao/linux
Pull configfs fixes from Breno Leitao:
- A symlink racing with rmdir of its target could reach a freed
->ci_dentry.
The reference that get_target() takes pins the config_item, not
its dentry; the dentry is pinned by DCACHE_PERSISTENT, which
configfs_remove_dir() drops while the item is still alive.
Take the target's configfs_dirent under ->d_lock instead of chasing
->ci_dentry.
- configfs_rmdir() left the dentry hashed across the final put of the
item, and configfs_get_config_item() treats a hashed dentry as proof
of a live item. A concurrent symlink could therefore resurrect a
dying item and hit a use-after-free.
Unhash in configfs_remove_dir(), while the item is still guaranteed
to be there.
Both issues were found by syzbot.
* tag 'configfs-7.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/leitao/linux:
configfs: unhash the dentry before dropping the item in rmdir
configfs: pin the symlink target's dirent instead of chasing ->ci_dentry
Diffstat (limited to 'include/linux/serial_reg.h')
0 files changed, 0 insertions, 0 deletions
