Looks good, Reviewed-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx> On Fri, Sep 27, 2013 at 08:01:31AM -0500, 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@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 -- Carlos _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs