[Ocfs2-devel] [PATCH] ocfs2: fix possible double free in ocfs2_reflink_xattr_rec

Jeff Liu jeff.liu at oracle.com
Tue Aug 6 07:43:49 PDT 2013


On 08/02/2013 03:30 PM, Joseph Qi wrote:

> In ocfs2_reflink_xattr_rec(), meta_ac and data_ac are allocated by
> calling ocfs2_lock_reflink_xattr_rec_allocators().
> Once an error occurs when allocating *data_ac, it frees *meta_ac which
> is allocated before. Here it mistakenly sets meta_ac to NULL but
> *meta_ac. Then ocfs2_reflink_xattr_rec() will try to free meta_ac again
> which is already invalid.
> 
> Signed-off-by: Joseph Qi <joseph.qi at huawei.com>

Looks good to me, thanks.

Reviewed-by: Jie Liu <jeff.liu at oracle.com>

> ---
>  fs/ocfs2/xattr.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
> index 87daa44..bd2a1f0 100644
> --- a/fs/ocfs2/xattr.c
> +++ b/fs/ocfs2/xattr.c
> @@ -6799,7 +6799,7 @@ out:
>  	if (ret) {
>  		if (*meta_ac) {
>  			ocfs2_free_alloc_context(*meta_ac);
> -			meta_ac = NULL;
> +			*meta_ac = NULL;
>  		}
>  	}
> 





More information about the Ocfs2-devel mailing list