[GFS2] Fix use after free bug in dir.c
Fix a use after free bug in dir.c spotted by Kevin Anderson.
Cc: Kevin Anderson <kanderso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
diff --git a/fs/gfs2/dir.c b/fs/gfs2/dir.c
index e96b532..f62223b 100644
--- a/fs/gfs2/dir.c
+++ b/fs/gfs2/dir.c
@@ -1763,9 +1763,8 @@
if (error)
goto out;
leaf = (struct gfs2_leaf *)bh->b_data;
- brelse(bh);
-
len = 1 << (dip->i_di.di_depth - be16_to_cpu(leaf->lf_depth));
+ brelse(bh);
error = lc(dip, index, len, leaf_no, data);
if (error)
@@ -1781,7 +1780,7 @@
error = -EIO;
}
- out:
+out:
kfree(lp);
return error;