CVE-2026-74359: configfs_lookup(): don't leave ->s_dentry dangling on failure
In the Linux kernel, the following vulnerability has been resolved:
configfslookup(): don't leave ->sdentry dangling on failure
Normally ->sdentry is cleared when dentry it's pointing to becomes negative (on eviction, realistically). However, that only happens if dentry gets to be positive in the first place; in case of inode allocation failure dentry never becomes positive, so ->diput() is not called at all.
We do part of what normally would've been done by configfsdiput() (dropping the reference to configfsdirent) manually, but we do not clear ->sdentry there. Sloppy as it is, it does not matter in case of configfscreate{dir,link}() - there configfsdirent does not survive dropping the sole reference to it.
However, for configfslookup() it does survive, with a dangling pointer to soon to be freed dentry sitting it its ->sdentry.
Subsequent getdents(2) in that directory will end up dereferencing that pointer in order to pick the inode number. Use after free...
This is the minimal fix; the right approach is to set the linkage between dentry and configfsdirent only after we know that we have an inode, but that takes more surgery and the bug had been there since 2006, so...