Skip to content

Commit

Permalink
GFS2: Fix possible null pointer deref in gfs2_rs_alloc
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Andrew Price authored and Steven Whitehouse committed Nov 7, 2012
1 parent aaaf68c commit cd0ed19
Showing 1 changed file with 2 additions and 3 deletions.
5 changes: 2 additions & 3 deletions fs/gfs2/rgrp.c
Original file line number Diff line number Diff line change
Expand Up @@ -553,15 +553,14 @@ 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)
return 0;

res = kmem_cache_zalloc(gfs2_rsrv_cachep, GFP_NOFS);
if (!res)
error = -ENOMEM;
return -ENOMEM;

RB_CLEAR_NODE(&res->rs_node);

Expand All @@ -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)
Expand Down

0 comments on commit cd0ed19

Please sign in to comment.