Free the memory pointed to by state before returning on error from xfs_dir2_node_removename.c Signed-off-by: Mark Tinguely <tinguely@xxxxxxx> --- Found by Coverity (134681) in userspace, same patch applies there also. 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@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs