Message ID | 20231002023150.GF3389589@ZenIV (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [01/15] rcu pathwalk: prevent bogus hard errors from may_lookup() | expand |
diff --git a/fs/smb/client/cifsfs.c b/fs/smb/client/cifsfs.c index 22869cda1356..2b044e47a3a6 100644 --- a/fs/smb/client/cifsfs.c +++ b/fs/smb/client/cifsfs.c @@ -1170,6 +1170,9 @@ const char *cifs_get_link(struct dentry *dentry, struct inode *inode, { char *target_path; + if (!dentry) + return ERR_PTR(-ECHILD); + target_path = kmalloc(PATH_MAX, GFP_KERNEL); if (!target_path) return ERR_PTR(-ENOMEM);
->d_revalidate() bails out there, anyway. It's not enough to prevent getting into ->get_link() in RCU mode, but that could happen only in a very contrieved setup. Not worth trying to do anything fancy here unless ->d_revalidate() stops kicking out of RCU mode at least in some cases. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> --- fs/smb/client/cifsfs.c | 3 +++ 1 file changed, 3 insertions(+)