staging: vboxsf: fix dereference of pointer dentry before it is null checked
authorColin Ian King <colin.king@canonical.com>
Tue, 5 Nov 2019 17:51:08 +0000 (17:51 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 7 Nov 2019 15:29:17 +0000 (16:29 +0100)
Currently the pointer dentry is being dereferenced before it is
being null checked.  Fix this by only dereferencing dentry once
we know it is not null.

Addresses-Coverity: ("Dereference before null check")
Fixes: df4028658f9d ("staging: Add VirtualBox guest shared folder (vboxsf) support")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Link: https://lore.kernel.org/r/20191105175108.79824-1-colin.king@canonical.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vboxsf/utils.c

index 1870b69c824e2804a0cca1f33832e29383c3a20b..34a49e6f74fced5b29f91e449986c3273d2ce865 100644 (file)
@@ -174,7 +174,7 @@ int vboxsf_stat_dentry(struct dentry *dentry, struct shfl_fsobjinfo *info)
 
 int vboxsf_inode_revalidate(struct dentry *dentry)
 {
-       struct vboxsf_sbi *sbi = VBOXSF_SBI(dentry->d_sb);
+       struct vboxsf_sbi *sbi;
        struct vboxsf_inode *sf_i;
        struct shfl_fsobjinfo info;
        struct timespec64 prev_mtime;
@@ -187,6 +187,7 @@ int vboxsf_inode_revalidate(struct dentry *dentry)
        inode = d_inode(dentry);
        prev_mtime = inode->i_mtime;
        sf_i = VBOXSF_I(inode);
+       sbi = VBOXSF_SBI(dentry->d_sb);
        if (!sf_i->force_restat) {
                if (time_before(jiffies, dentry->d_time + sbi->o.ttl))
                        return 0;