[Cluster-devel] [GFS2 PATCH] GFS2: Don't dereference inode in gfs2_inode_lookup until it's valid
Bob Peterson
rpeterso at redhat.com
Wed Apr 13 15:00:44 UTC 2016
Hi,
Andreas pointed this bug out yesterday:
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 at redhat.com>
---
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
index 57b3dbf..ed3f3615 100644
--- a/fs/gfs2/inode.c
+++ b/fs/gfs2/inode.c
@@ -113,12 +113,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;
More information about the Cluster-devel
mailing list