ksmbd: fix possible null-deref in smb_lazy_parent_lease_break_close
authorMarios Makassikis <mmakassikis@freebox.fr>
Wed, 13 Mar 2024 14:11:38 +0000 (15:11 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 25 May 2024 14:22:50 +0000 (16:22 +0200)
[ Upstream commit 5fb282ba4fef8985a5acf2b32681f2ec07732561 ]

rcu_dereference can return NULL, so make sure we check against that.

Signed-off-by: Marios Makassikis <mmakassikis@freebox.fr>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/smb/server/oplock.c

index 7bdae2adad2284ef9790813e347669727fed896b..58bafe23ded9a788d9aa46fd6e2df37c6c5490b4 100644 (file)
@@ -1152,7 +1152,7 @@ void smb_lazy_parent_lease_break_close(struct ksmbd_file *fp)
        opinfo = rcu_dereference(fp->f_opinfo);
        rcu_read_unlock();
 
-       if (!opinfo->is_lease || opinfo->o_lease->version != 2)
+       if (!opinfo || !opinfo->is_lease || opinfo->o_lease->version != 2)
                return;
 
        p_ci = ksmbd_inode_lookup_lock(fp->filp->f_path.dentry->d_parent);