The cifs_get_tcon_super() function returns NULL on error but the caller expect it to return error pointers instead. Change it to return error pointers. Otherwise it results in a NULL pointer dereference. Fixes: 0938b093b1ae ("smb: client: Fix mount deadlock by avoiding super block iteration in DFS reconnect") Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> --- fs/smb/client/misc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/smb/client/misc.c b/fs/smb/client/misc.c index 3b6920a52daa..d73c36862e97 100644 --- a/fs/smb/client/misc.c +++ b/fs/smb/client/misc.c @@ -1116,7 +1116,7 @@ static struct super_block *cifs_get_tcon_super(struct cifs_tcon *tcon) struct cifs_sb_info *cifs_sb; if (!tcon) - return NULL; + return ERR_PTR(-EINVAL); spin_lock(&tcon->sb_list_lock); list_for_each_entry(cifs_sb, &tcon->cifs_sb_list, tcon_sb_link) { @@ -1141,7 +1141,7 @@ static struct super_block *cifs_get_tcon_super(struct cifs_tcon *tcon) } spin_unlock(&tcon->sb_list_lock); - return NULL; + return ERR_PTR(-ENOENT); } struct super_block *cifs_get_dfs_tcon_super(struct cifs_tcon *tcon) -- 2.47.2