[PATCH] xfs: fix memory leak in xfs_dir2_node_removename
Eric Sandeen
sandeen at sandeen.net
Fri Sep 27 11:44:21 CDT 2013
On 9/27/13 8:01 AM, Mark Tinguely wrote:
> Free the memory pointed to by state before returning on error from
> xfs_dir2_node_removename.c
>
> Signed-off-by: Mark Tinguely <tinguely at sgi.com>
> ---
> Found by Coverity (134681) in userspace, same patch applies there
> also.
Heh, looks like that one has been around since the dawn of time, thanks.
Reviewed-by: Eric Sandeen <sandeen at redhat.com>
how do we handle the matching userspace fixes, separate patch to
be explicit? Wait for the next syncup?
Thanks,
-Eric
> fs/xfs/xfs_dir2_node.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> Index: b/fs/xfs/xfs_dir2_node.c
> ===================================================================
> --- a/fs/xfs/xfs_dir2_node.c
> +++ b/fs/xfs/xfs_dir2_node.c
> @@ -2131,10 +2131,9 @@ xfs_dir2_node_removename(
> /*
> * Didn't find it, upper layer screwed up.
> */
> - if (rval != EEXIST) {
> - xfs_da_state_free(state);
> - return rval;
> - }
> + if (rval != EEXIST)
> + goto done;
> +
> blk = &state->path.blk[state->path.active - 1];
> ASSERT(blk->magic == XFS_DIR2_LEAFN_MAGIC);
> ASSERT(state->extravalid);
> @@ -2145,7 +2144,7 @@ xfs_dir2_node_removename(
> error = xfs_dir2_leafn_remove(args, blk->bp, blk->index,
> &state->extrablk, &rval);
> if (error)
> - return error;
> + goto done;
> /*
> * Fix the hash values up the btree.
> */
> @@ -2160,6 +2159,7 @@ xfs_dir2_node_removename(
> */
> if (!error)
> error = xfs_dir2_node_to_leaf(state);
> +done:
> xfs_da_state_free(state);
> return error;
> }
>
>
> _______________________________________________
> xfs mailing list
> xfs at oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
>
More information about the xfs
mailing list