diff options
Diffstat (limited to 'fs/gfs2/export.c')
| -rw-r--r-- | fs/gfs2/export.c | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/gfs2/export.c b/fs/gfs2/export.c index e8ed6d4a618..4767774a5f3 100644 --- a/fs/gfs2/export.c +++ b/fs/gfs2/export.c @@ -161,6 +161,8 @@ static struct dentry *gfs2_fh_to_dentry(struct super_block *sb, struct fid *fid,  	case GFS2_SMALL_FH_SIZE:  	case GFS2_LARGE_FH_SIZE:  	case GFS2_OLD_FH_SIZE: +		if (fh_len < GFS2_SMALL_FH_SIZE) +			return NULL;  		this.no_formal_ino = ((u64)be32_to_cpu(fh[0])) << 32;  		this.no_formal_ino |= be32_to_cpu(fh[1]);  		this.no_addr = ((u64)be32_to_cpu(fh[2])) << 32; @@ -180,6 +182,8 @@ static struct dentry *gfs2_fh_to_parent(struct super_block *sb, struct fid *fid,  	switch (fh_type) {  	case GFS2_LARGE_FH_SIZE:  	case GFS2_OLD_FH_SIZE: +		if (fh_len < GFS2_LARGE_FH_SIZE) +			return NULL;  		parent.no_formal_ino = ((u64)be32_to_cpu(fh[4])) << 32;  		parent.no_formal_ino |= be32_to_cpu(fh[5]);  		parent.no_addr = ((u64)be32_to_cpu(fh[6])) << 32;  |