diff options
author | Andrew Price <anprice@redhat.com> | 2012-10-12 17:45:09 +0200 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2012-11-07 10:40:39 +0100 |
commit | cd0ed19fb614cb1315c0a510ec6c163d8324fd82 (patch) | |
tree | 18ce2f1cc49be6668439538a258270517b2ebb53 /fs/gfs2 | |
parent | GFS2: Fix an unchecked error from gfs2_rs_alloc (diff) | |
download | linux-cd0ed19fb614cb1315c0a510ec6c163d8324fd82.tar.xz linux-cd0ed19fb614cb1315c0a510ec6c163d8324fd82.zip |
GFS2: Fix possible null pointer deref in gfs2_rs_alloc
Despite the return value from kmem_cache_zalloc() being checked, the
error wasn't being returned until after a possible null pointer
dereference. This patch returns the error immediately, allowing the
removal of the error variable.
Signed-off-by: Andrew Price <anprice@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2')
-rw-r--r-- | fs/gfs2/rgrp.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c index 3cc402ce6fea..43d1a20bdbe4 100644 --- a/fs/gfs2/rgrp.c +++ b/fs/gfs2/rgrp.c @@ -553,7 +553,6 @@ void gfs2_free_clones(struct gfs2_rgrpd *rgd) */ int gfs2_rs_alloc(struct gfs2_inode *ip) { - int error = 0; struct gfs2_blkreserv *res; if (ip->i_res) @@ -561,7 +560,7 @@ int gfs2_rs_alloc(struct gfs2_inode *ip) res = kmem_cache_zalloc(gfs2_rsrv_cachep, GFP_NOFS); if (!res) - error = -ENOMEM; + return -ENOMEM; RB_CLEAR_NODE(&res->rs_node); @@ -571,7 +570,7 @@ int gfs2_rs_alloc(struct gfs2_inode *ip) else ip->i_res = res; up_write(&ip->i_rw_mutex); - return error; + return 0; } static void dump_rs(struct seq_file *seq, const struct gfs2_blkreserv *rs) |