[Cluster-devel] [GFS2 Patch] Fix recent use-after-free spotted by coverity

Steven Whitehouse swhiteho at redhat.com
Mon Jan 9 15:40:38 UTC 2012


Hi,

Now in the -fixes tree. Thanks,

Steve.

On Fri, 2012-01-06 at 16:48 -0500, Bob Peterson wrote:
> Hi,
> 
> This patch fixes a use-after-free bug, spotted by coverity, which
> was recently introduced.
> 
> Regards,
> 
> Bob Peterson
> Red Hat File Systems
> 
> Signed-off-by: Bob Peterson <rpeterso at redhat.com> 
> --
> Author: Bob Peterson <rpeterso at redhat.com>
> Date:   Fri Jan 6 16:42:27 2012 -0600
> 
>     GFS2: Fix a use-after-free that coverity spotted
>     
>     In function gfs2_inplace_release it was trying to unlock a gfs2_holder
>     structure associated with a reservation, after said reservation was
>     freed. The problem is that the statements have the wrong order.
>     This patch corrects the order so that the reservation is freed after
>     the gfs2_holder is unlocked.
> 
> diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
> index 2223462..981bfa3 100644
> --- a/fs/gfs2/rgrp.c
> +++ b/fs/gfs2/rgrp.c
> @@ -1108,9 +1108,9 @@ void gfs2_inplace_release(struct gfs2_inode *ip)
>  {
>  	struct gfs2_blkreserv *rs = ip->i_res;
>  
> -	gfs2_blkrsv_put(ip);
>  	if (rs->rs_rgd_gh.gh_gl)
>  		gfs2_glock_dq_uninit(&rs->rs_rgd_gh);
> +	gfs2_blkrsv_put(ip);
>  }
>  
>  /**
> 





More information about the Cluster-devel mailing list