GFS2: Don't dereference inode in gfs2_inode_lookup until it's valid
authorBob Peterson <rpeterso@redhat.com>
Tue, 12 Apr 2016 20:14:26 +0000 (16:14 -0400)
committerBob Peterson <rpeterso@redhat.com>
Thu, 14 Apr 2016 13:52:50 +0000 (09:52 -0400)
Function gfs2_inode_lookup was dereferencing the inode, and after,
it checks for the value being NULL. We need to check that first.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
fs/gfs2/inode.c

index bb30f9a..aea002e 100644 (file)
@@ -93,12 +93,12 @@ struct inode *gfs2_inode_lookup(struct super_block *sb, unsigned int type,
        int error;
 
        inode = iget_locked(sb, (unsigned long)no_addr);
-       ip = GFS2_I(inode);
-       ip->i_no_addr = no_addr;
-
        if (!inode)
                return ERR_PTR(-ENOMEM);
 
+       ip = GFS2_I(inode);
+       ip->i_no_addr = no_addr;
+
        if (inode->i_state & I_NEW) {
                struct gfs2_sbd *sdp = GFS2_SB(inode);
                ip->i_no_formal_ino = no_formal_ino;