From: Al Viro Date: Wed, 5 Aug 2015 03:23:50 +0000 (-0400) Subject: may_follow_link() should use nd->inode X-Git-Tag: Ubuntu-5.10.0-12.13~14309^2 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=aa65fa35ba6b589a12a6025739c2d935dd743b5a;p=mirror_ubuntu-hirsute-kernel.git may_follow_link() should use nd->inode Now that we can get there in RCU mode, we shouldn't play with nd->path.dentry->d_inode - it's not guaranteed to be stable. Use nd->inode instead. Reported-by: Hugh Dickins Signed-off-by: Al Viro --- diff --git a/fs/namei.c b/fs/namei.c index fbbcf0993312..1c2105ed20c5 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -879,7 +879,7 @@ static inline int may_follow_link(struct nameidata *nd) return 0; /* Allowed if parent directory not sticky and world-writable. */ - parent = nd->path.dentry->d_inode; + parent = nd->inode; if ((parent->i_mode & (S_ISVTX|S_IWOTH)) != (S_ISVTX|S_IWOTH)) return 0;