aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/inode.c
diff options
context:
space:
mode:
authorRussell Cattelan <cattelan@redhat.com>2007-01-08 17:47:51 -0600
committerSteven Whitehouse <swhiteho@redhat.com>2007-02-05 13:36:28 -0500
commit6c93fd1e578669364e026a0d44c669b871e2a8c4 (patch)
tree282fd8a70fd4791a80a06dbddac1060cbc4f3848 /fs/gfs2/inode.c
parent[GFS2] Fix ordering of page disposal vs. glock_dq (diff)
downloadlinux-dev-6c93fd1e578669364e026a0d44c669b871e2a8c4.tar.xz
linux-dev-6c93fd1e578669364e026a0d44c669b871e2a8c4.zip
[GFS2] BZ 217008 fsfuzzer fix.
Update the quilt header comments to match the code changes. Change gfs2_lookup_simple to return an error in the case of a NULL inode. The callers of gfs2_lookup_simple do not check for NULL in the no entry case and such would end up dereferencing a NULL ptr. This fixes: http://projects.info-pull.com/mokb/MOKB-15-11-2006.html Signed-off-by: Russell Cattelan <cattelan@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to '')
-rw-r--r--fs/gfs2/inode.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
index 6bc443644c3c..bab338f6b610 100644
--- a/fs/gfs2/inode.c
+++ b/fs/gfs2/inode.c
@@ -361,8 +361,18 @@ out:
struct inode *gfs2_lookup_simple(struct inode *dip, const char *name)
{
struct qstr qstr;
+ struct inode *inode;
gfs2_str2qstr(&qstr, name);
- return gfs2_lookupi(dip, &qstr, 1, NULL);
+ inode = gfs2_lookupi(dip, &qstr, 1, NULL);
+ /* gfs2_lookupi has inconsistent callers: vfs
+ * related routines expect NULL for no entry found,
+ * gfs2_lookup_simple callers expect ENOENT
+ * and do not check for NULL.
+ */
+ if (inode == NULL)
+ return ERR_PTR(-ENOENT);
+ else
+ return inode;
}