ecryptfs_lookup_interpose(): lower_dentry->d_inode is not stable
commit e72b9dd6 upstream. lower_dentry can't go from positive to negative (we have it pinned), but it *can* go from negative to positive. So fetching ->d_inode into a local variable, doing a blocking allocation, checking that now ->d_inode is non-NULL and feeding the value we'd fetched earlier to a function that won't accept NULL is not a good idea. Signed-off-by:Al Viro <viro@zeniv.linux.org.uk> [bwh: Backported to 3.16: - Use ACCESS_ONCE() instead of READ_ONCE() - Adjust context] Signed-off-by:
Ben Hutchings <ben@decadent.org.uk>
Loading
Please sign in to comment